/* ===== [COMMON] ===== */
/* 2026-10-01 confirmed content and color-flow update */
html {
  scrollbar-width: thin;
  scrollbar-color: var(--purple) #111116;
}
/* ===== [MODAL] ===== */
html.modal-open,
html.modal-open body {
  overflow: hidden !important;
  overscroll-behavior: none;
}
/* ===== [PROGRAM] ===== */
html::-webkit-scrollbar,
.program-dialog::-webkit-scrollbar,
.guide-tabs::-webkit-scrollbar {
  width: 10px;
  height: 8px;
}
html::-webkit-scrollbar-track,
.program-dialog::-webkit-scrollbar-track,
.guide-tabs::-webkit-scrollbar-track {
  background: #111116;
}
html::-webkit-scrollbar-thumb,
.program-dialog::-webkit-scrollbar-thumb,
.guide-tabs::-webkit-scrollbar-thumb {
  border: 2px solid #111116;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--purple), #8a77ff);
}
html::-webkit-scrollbar-thumb:hover,
.program-dialog::-webkit-scrollbar-thumb:hover {
  background: var(--mint);
}
/* ===== [ABOUT] ===== */
.intro {
  background: var(--purple) !important;
  color: var(--ink) !important;
}
/* ===== [PROGRAM] ===== */
.intro-stage {
  background: var(--purple) !important;
}
/* ===== [ABOUT] ===== */
.intro-inner,
.about-copy {
  background: var(--purple) !important;
}
.about-copy > div {
  background: transparent !important;
}
.about-copy {
  position: relative !important;
  display: flex !important;
  min-height: 540px !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 100px 24px 130px !important;
  overflow: hidden !important;
  text-align: center !important;
}
.about-copy > div:first-child {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.about-copy:before,
.about-copy:after {
  display: none !important;
}
.about-copy .about-brand {
  display: none !important;
}
.about-copy h1 {
  position: relative;
  display: block !important;
  width: auto !important;
  margin: 0 !important;
  color: #fff !important;
  font-size: clamp(40px, 4.3vw, 62px) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.055em !important;
  white-space: nowrap !important;
}
.about-copy h1:before {
  display: block;
  margin: 0 0 -4px;
  color: #f7f4ef;
  content: "What Excites you?";
  font-family: "Black Signature", "Brush Script MT", cursive;
  font-size: clamp(38px, 5.5vw, 80px);
  font-weight: 400;
  line-height: 0.8;
  letter-spacing: 0;
  transform: rotate(-4deg);
}
.about-copy h1 em {
  position: relative;
  color: var(--yellow) !important;
  font-style: normal;
}
.about-copy h1 em:after {
  position: absolute;
  right: 0;
  bottom: -4px;
  left: 0;
  height: 7px;
  background: var(--yellow);
  content: "";
  opacity: 0.55;
  transform: rotate(-2deg);
}
.about-copy > div:first-child > p {
  margin: 34px 0 0 !important;
  padding: 13px 18px !important;
  background: var(--ink) !important;
  color: #fff !important;
  font-size: clamp(14px, 1.4vw, 19px) !important;
  font-weight: 800;
  line-height: 1.4 !important;
  transform: rotate(-1deg);
}
.intro-facts {
  position: absolute !important;
  z-index: 3 !important;
  right: 0 !important;
  bottom: -92px !important;
  left: 0 !important;
  display: flex !important;
  width: max-content !important;
  max-width: calc(100vw - 48px);
  align-items: center !important;
  justify-content: center !important;
  gap: 34px !important;
  margin: auto !important;
  color: var(--ink) !important;
}
.intro-facts div {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}
.intro-facts div + div:before {
  width: 1px;
  height: 34px;
  margin-right: 24px;
  background: rgba(21, 21, 26, 0.4);
  content: "";
}
.intro-facts svg {
  width: 24px !important;
  height: 24px !important;
}
.intro-facts strong {
  font-size: 15px !important;
  white-space: nowrap;
}
/* ===== [PROGRAM] ===== */
.intro-stage .about-script {
  color: rgba(255, 255, 255, 0.28) !important;
}
/* ===== [ABOUT] ===== */
.about-copy:before {
  position: absolute !important;
  z-index: 0 !important;
  right: -0.04em !important;
  bottom: -0.22em !important;
  left: -0.04em !important;
  display: block !important;
  color: rgba(255, 255, 255, 0.12) !important;
  content: "WEFESTA" !important;
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-size: clamp(190px, 28vw, 500px) !important;
  font-weight: 900 !important;
  line-height: 0.72 !important;
  letter-spacing: -0.085em !important;
  white-space: nowrap !important;
  pointer-events: none !important;
}
.about-copy:after {
  position: absolute !important;
  z-index: 1 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  display: block !important;
  height: 42% !important;
  background-image: radial-gradient(
    rgba(255, 255, 255, 0.7) 1.35px,
    transparent 1.35px
  ) !important;
  background-size: 15px 15px !important;
  content: "" !important;
  opacity: 0.7 !important;
  pointer-events: none !important;
}
.about-copy > div:first-child,
.about-copy .intro-facts {
  z-index: 3 !important;
}
/* ===== [PROGRAM] ===== */
.program {
  background: var(--ink) !important;
  color: #fff !important;
}
/* ===== [MAP] ===== */
.festa-map {
  background: #f7f4ef !important;
  color: var(--ink) !important;
}
/* ===== [GUIDE] ===== */
.guide {
  background: var(--ink) !important;
  color: #fff !important;
}
.guide-head p {
  color: #c9c9cf !important;
}
.guide-tabs-wrap,
.guide-tabs,
.guide-panel {
  border-color: #666 !important;
}
.guide-tab {
  border-color: #666 !important;
  background: #24242a !important;
  color: #fff !important;
}
.guide-tab:focus {
  outline: 0 !important;
}
.guide-tab:focus-visible {
  outline: 2px solid var(--yellow) !important;
  outline-offset: -4px !important;
}
.guide-tab[aria-selected="true"] {
  background: var(--mint) !important;
  color: var(--ink) !important;
}
.guide-panel {
  background: #f7f4ef !important;
  color: var(--ink) !important;
}
.guide-panel {
  padding: clamp(30px, 4vw, 58px) !important;
}
.guide-panel > strong {
  display: none !important;
}
.guide-panel {
  position: relative;
  overflow: hidden;
}
.guide-view-ticket {
  background: #f7f4ef !important;
}
.guide-view-ticket {
  border-top: 0 !important;
}
.guide-view-ticket:before {
  display: none !important;
  content: none !important;
}
.guide-view-timetable {
  background: #f7f4ef !important;
}
.guide-view-event {
  background: #f7f4ef !important;
  color: var(--ink) !important;
}
.guide-merch {
  display: grid;
  grid-template-columns: minmax(250px, 0.7fr) minmax(0, 1.3fr);
  gap: 40px;
  align-items: center;
}
.guide-merch-copy h3 {
  color: var(--ink);
  font-size: clamp(28px, 3vw, 44px);
}
.guide-merch-copy p {
  margin: 0 0 16px !important;
  color: #57545b !important;
  font-size: 15px !important;
  line-height: 1.75;
}
.guide-merch-gallery {
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: 8px;
}
.guide-merch-gallery img {
  display: block;
  width: 100%;
  height: 330px;
  object-fit: cover;
}
.guide-view-entry {
  background: #f7f4ef !important;
}
.guide-view-entry .entry-guide {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.9fr);
  gap: 34px;
  align-items: start;
}
.entry-guide-head {
  grid-column: 1/-1;
}
.entry-guide-head p {
  max-width: 920px !important;
}
.guide-view-entry .guide-reference-image {
  grid-column: 1;
  margin: 0 !important;
  border: 2px solid var(--ink);
}
.entry-guide-details {
  grid-column: 2;
  display: grid;
  gap: 10px;
}
.entry-guide-details section {
  position: relative;
  padding: 22px 24px 20px;
  background: #fff;
  border-left: 5px solid var(--purple);
}
.entry-guide-details section:nth-child(2) {
  border-color: var(--pink);
}
.entry-guide-details section:nth-child(3) {
  border-color: var(--mint);
}
.entry-guide-details section:nth-child(4) {
  border-color: var(--yellow);
}
.entry-guide-details b {
  position: absolute;
  top: 18px;
  right: 20px;
  color: var(--purple);
  font-size: 12px;
}
.entry-guide-details strong {
  display: block;
  margin: 0 38px 10px 0;
  font-size: 18px;
}
.entry-guide-details p {
  margin: 0 !important;
  color: #4e4c52 !important;
  font-size: 12px !important;
  line-height: 1.65 !important;
}
.entry-guide-details em {
  display: block;
  margin-top: 10px;
  color: #e02f3f;
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
  line-height: 1.55;
}
.guide-view-notice {
  background: #f7f4ef !important;
}
.guide-view-notice .notice-guide > h3 {
  margin-bottom: 30px;
  font-size: clamp(28px, 3vw, 44px);
}
.guide-view-notice .notice-groups {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 0;
}
.guide-view-notice .notice-group {
  --notice-accent: var(--purple);
  position: relative;
  min-height: 260px;
  padding: 30px 32px 28px 94px;
  border: 1.5px solid var(--ink);
  background: #fff;
  color: var(--ink);
  overflow: hidden;
}
.guide-view-notice .notice-group:nth-child(2) {
  --notice-accent: var(--pink);
}
.guide-view-notice .notice-group:nth-child(3) {
  --notice-accent: var(--mint);
}
.guide-view-notice .notice-group:nth-child(4) {
  --notice-accent: var(--yellow);
}
.guide-view-notice .notice-group > b {
  position: absolute;
  right: 24px;
  bottom: 15px;
  color: var(--notice-accent);
  font-size: 76px;
  font-weight: 950;
  line-height: 1;
  opacity: 0.28;
}
.notice-icon {
  position: absolute;
  top: 30px;
  left: 28px;
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  margin: 0;
  border: 0;
  border-radius: 50%;
  background: var(--notice-accent);
  color: var(--ink);
}
.notice-icon svg {
  width: 25px;
  height: 25px;
}
.guide-view-notice .notice-group > strong {
  position: relative;
  margin: 0 0 18px;
  font-size: 22px;
  letter-spacing: -0.04em;
}
.guide-view-notice .notice-group > strong:after {
  display: block;
  width: 34px;
  height: 3px;
  margin-top: 12px;
  background: var(--notice-accent);
  content: "";
}
.guide-view-notice .notice-group ul {
  position: relative;
  margin: 0;
  padding-left: 18px;
  font-size: 14px;
  line-height: 1.75;
}

/* ===== [PROGRAM] ===== */
.program-grid {
  width: min(100%, 1040px) !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
}
.program-card,
.program-card:nth-child(4),
.program-card:nth-child(5),
.program-card:last-child {
  grid-column: auto !important;
  min-height: 0 !important;
  aspect-ratio: 16/9 !important;
}
.program-card h3 {
  right: 18px !important;
  bottom: 44px !important;
  left: 18px !important;
  font-size: 17px !important;
  transform: none !important;
}
.program-card .program-summary {
  position: absolute;
  right: 18px;
  bottom: 18px;
  left: 18px;
  margin: 0;
  overflow: hidden;
  color: #fff;
  font-size: 11px;
  line-height: 1.35;
  white-space: nowrap;
  text-overflow: ellipsis;
  opacity: 0.8;
  transform: none;
}
.program-card:hover h3,
.program-card:focus-visible h3 {
  transform: none !important;
}
.program-card:hover .program-summary,
.program-card:focus-visible .program-summary {
  opacity: 1;
}
.program-card {
  cursor: pointer !important;
}
.program-details {
  display: none !important;
}
.program-details-body {
  color: #d0d0d4;
  font-size: 14px;
  line-height: 1.75;
}
.program-details-body p {
  margin: 0 0 14px;
}
.program-details-body ul {
  margin: 0;
  padding-left: 20px;
}
.event-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 16px;
}
.event-list article {
  padding: 14px;
  border: 1px solid #4b4b52;
  background: #1b1b20;
}
.event-list small {
  color: var(--mint);
  font-weight: 900;
}
.event-list strong {
  display: block;
  margin: 5px 0 7px;
  color: #fff;
}
.event-list p {
  margin: 0;
  font-size: 12px;
  line-height: 1.55;
}
.event-list em {
  display: block;
  margin-top: 10px;
  color: #ffd85d;
  font-size: 11px;
  font-style: normal;
  line-height: 1.5;
}
.program-dialog {
  width: min(92vw, 980px);
  max-width: none;
  max-height: 88vh;
  padding: 0;
  border: 0;
  background: #18181d;
  color: #fff;
  overflow: auto;
}
.program-dialog::backdrop {
  background: rgba(0, 0, 0, 0.82);
}
.program-dialog-inner {
  position: relative;
  padding: 48px clamp(24px, 5vw, 64px) 56px;
}
.program-dialog-close {
  position: absolute;
  top: 14px;
  right: 18px;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 34px;
  line-height: 1;
  cursor: pointer;
}
.program-dialog h3 {
  margin: 0 48px 30px 0;
  font-size: clamp(28px, 4vw, 48px);
  line-height: 1.05;
}
.program-dialog .program-details-body {
  color: #ddd;
}
.program-dialog .program-details-body > p {
  font-size: 16px;
  line-height: 1.75;
}
.program-modal-media {
  position: relative;
  margin: 0 0 28px;
  overflow: hidden;
  border: 1px solid #4a4a50;
  background: #111;
}
.program-modal-media img {
  display: block;
  width: 100%;
  max-height: 440px;
  object-fit: cover;
}
.program-modal-media.is-blurred img {
  filter: blur(12px);
  opacity: 0.7;
  transform: scale(1.035);
}
.program-modal-media > strong {
  position: absolute;
  top: 50%;
  left: 50%;
  width: max-content;
  max-width: 85%;
  padding: 16px 22px;
  background: rgba(21, 21, 26, 0.92);
  color: #fff;
  font-size: clamp(18px, 2.5vw, 28px);
  text-align: center;
  transform: translate(-50%, -50%);
}

/* ===== [GUIDE] ===== */
.timetable-release {
  position: relative;
  width: min(100%, 1180px);
  margin: 24px auto 0;
  overflow: hidden;
  border: 1px solid var(--ink);
  background: #111;
}
.timetable-release img {
  display: block;
  width: 100%;
  height: auto;
  filter: blur(12px);
  opacity: 0.72;
  transform: scale(1.025);
}
.timetable-release strong {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(86%, 520px);
  padding: 24px 28px;
  border: 2px solid #fff;
  background: rgba(21, 21, 25, 0.9);
  color: #fff;
  font-size: clamp(20px, 2.4vw, 34px);
  text-align: center;
  transform: translate(-50%, -50%);
}
.guide-copy {
  font-size: 15px;
  line-height: 1.75;
}
.guide-copy h3 {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 42px 0 16px;
  font-size: 24px;
  letter-spacing: -0.03em;
}
.guide-copy h3:before {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--purple);
  content: "";
}
.guide-copy h3:first-child {
  margin-top: 0;
}
.guide-copy > p {
  max-width: 850px;
  margin: 0 0 24px;
  color: #68656d;
  font-size: 17px;
}
.guide-copy ul {
  margin: 8px 0 20px;
  padding-left: 20px;
}
/* ===== [PROGRAM] ===== */
.ticket-types,
.notice-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin: 24px 0 48px;
}
.ticket-type {
  position: relative;
  min-height: 360px;
  padding: 30px;
  border: 2px solid var(--ink);
  background: #f7f4ef;
  box-shadow: 8px 8px 0 var(--purple);
  overflow: hidden;
}
.ticket-type:after {
  position: absolute;
  top: 24px;
  right: 26px;
  width: 30px;
  height: 30px;
  background: var(--purple);
  content: "";
  clip-path: polygon(
    50% 0,
    60% 36%,
    100% 50%,
    60% 64%,
    50% 100%,
    40% 64%,
    0 50%,
    40% 36%
  );
}
.ticket-type > strong {
  display: block;
  margin: 0 45px 12px 0;
  font-size: 28px;
  line-height: 1;
}
.ticket-type > p {
  min-height: 54px;
  margin: 0 0 14px;
  color: #555;
  font-size: 15px;
  line-height: 1.55;
}
.ticket-type > ul {
  min-height: 94px;
  margin: 0;
  padding-left: 18px;
  font-size: 14px;
}
.ticket-price {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 22px -30px -30px;
  border-top: 2px solid var(--ink);
}
.ticket-price b {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 12px 20px;
  background: var(--ink);
  color: #fff;
  font-size: 20px;
}
.ticket-price b:first-child {
  background: var(--purple);
}
.ticket-price span {
  padding: 10px 20px;
  border-bottom: 1px solid #bbb;
  background: #fff;
  color: #555;
  font-size: 12px;
}
/* ===== [GUIDE] ===== */
.notice-group {
  padding: 24px;
  border: 1px solid #bbb;
  background: #f7f4ef;
}
.notice-group strong {
  display: block;
  margin-bottom: 8px;
  font-size: 17px;
}
.session-table {
  display: block;
  width: 100%;
  margin: 22px 0 42px;
  border: 2px solid var(--ink);
  border-collapse: collapse;
}
.session-table tbody {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.session-table tr {
  display: flex;
  min-width: 0;
  flex-direction: column;
  border-right: 1px solid var(--ink);
}
.session-table tr:last-child {
  border-right: 0;
}
.session-table th,
.session-table td {
  display: block;
  padding: 14px 16px;
  border: 0;
  text-align: left;
}
.session-table th {
  background: var(--ink);
  color: #fff;
  font-size: 13px;
}
.session-table td {
  background: #fff;
  font-size: 18px;
  font-weight: 900;
}
.session-notes {
  margin: 0 0 26px !important;
  padding-left: 20px;
  font-size: 14px;
  line-height: 1.75;
}
.session-schedule-wrap {
  width: 100%;
  margin: 20px 0 44px;
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--purple) #e7e4df;
}
.session-schedule {
  width: 100%;
  min-width: 980px;
  border: 2px solid var(--ink);
  border-collapse: collapse;
  background: #fff;
  text-align: center;
}
.session-schedule th,
.session-schedule td {
  padding: 15px 12px;
  border: 1px solid #c9c7c3;
  font-size: 13px;
  line-height: 1.35;
}
.session-schedule thead th {
  background: var(--ink);
  color: #fff;
  font-weight: 900;
}
.session-schedule thead th:nth-last-child(6),
.session-schedule thead th:nth-last-child(5) {
  background: #78c4e6;
  color: var(--ink);
}
.session-schedule thead th:nth-last-child(4),
.session-schedule thead th:nth-last-child(3) {
  background: #a9df9b;
  color: var(--ink);
}
.session-schedule thead th:nth-last-child(2),
.session-schedule thead th:last-child {
  background: #f3d4c5;
  color: var(--ink);
}
.session-schedule tbody th {
  background: #f1efeb;
  text-align: left;
  white-space: nowrap;
}
.session-schedule tbody td[rowspan] {
  background: #f7f4ef;
  font-weight: 900;
}
/* ===== [COMMON] ===== */
.pending-copy {
  padding: 16px;
  border: 1px dashed #888;
  background: #f7f4ef;
  color: #555;
}

/* ===== [PLATFORMS] ===== */
.platform-grid {
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
}
.platform-grid > a,
.platform-grid > .platform-card {
  display: flex !important;
  min-height: 220px !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 24px 14px;
  border: 0 !important;
  background: transparent !important;
  color: var(--ink);
  text-align: center;
}
.platform-grid > *:last-child {
  border: 0 !important;
}
.platform-grid .platform-logo-box {
  display: flex;
  width: 100%;
  height: 74px;
  align-items: center;
  justify-content: center;
}
.platform-grid img {
  width: auto !important;
  max-width: 88% !important;
  max-height: 64px !important;
}
.platform-wordmark {
  font-size: 20px;
  font-weight: 950;
  line-height: 1.05;
  letter-spacing: -0.03em;
}
.platform-grid span {
  font-size: 13px;
  font-weight: 900;
}
.platform-card.is-pending {
  cursor: default;
}
.platform-grid a:after {
  display: none !important;
}
.platforms .platforms-accent,
.platforms .section-character {
  display: none !important;
}
.platform-grid > *:nth-child(1) img {
  max-width: 138px !important;
  max-height: 48px !important;
}
.platform-grid > *:nth-child(2) img {
  max-width: 142px !important;
  max-height: 42px !important;
}
.platform-grid > *:nth-child(3) img {
  max-width: 132px !important;
  max-height: 58px !important;
}
.platform-grid > *:nth-child(4) img {
  max-width: 130px !important;
  max-height: 50px !important;
}
.platform-grid > *:nth-child(5) img {
  max-width: 126px !important;
  max-height: 42px !important;
}
.platform-grid > *:nth-child(6) img {
  max-width: 132px !important;
  max-height: 44px !important;
}
.platform-grid > *:nth-child(7) img {
  max-width: 124px !important;
  max-height: 50px !important;
}

/* ===== [FOOTER] ===== */
.full-footer-inner {
  grid-template-columns:
    minmax(170px, 1fr) minmax(150px, 0.72fr) minmax(270px, 1.12fr)
    minmax(330px, 1.48fr) 80px !important;
  gap: clamp(24px, 3vw, 54px) !important;
}
.footer-organizer-logos {
  display: flex;
  min-height: 32px;
  align-items: center;
  gap: 18px;
  margin: 4px 0 0;
}
.footer-organizer-logos img {
  display: block;
  max-width: none !important;
  object-fit: contain;
}
.footer-logo-kidari {
  width: auto !important;
  height: 28px !important;
  filter: grayscale(1) brightness(0) invert(1) !important;
}
.footer-logo-lezhin {
  width: auto !important;
  height: 28px !important;
  filter: none !important;
}

/* ===== [MAP] ===== */
/* Keep the map artwork and its controls clear of the section mascot. */
.festa-map {
  padding-bottom: 120px !important;
}
.festa-map-layout {
  position: relative;
  z-index: 2;
}
.festa-map-layout {
  width: min(100%, 1600px) !important;
  grid-template-columns: minmax(0, 1.65fr) minmax(520px, 1fr) !important;
  gap: 32px !important;
  align-items: start !important;
}
.booth-map-wrap {
  width: 100% !important;
}
.map-character,
.map-spark {
  z-index: 1 !important;
}
.booth-map-column {
  min-width: 0;
}
.map-mascot {
  position: relative;
  height: 118px;
  pointer-events: none;
}
.map-mascot > .map-character {
  position: absolute !important;
  top: 18px !important;
  bottom: auto !important;
  left: 0 !important;
  width: 72px !important;
}
.map-mascot > .map-spark {
  position: absolute !important;
  top: 34px !important;
  bottom: auto !important;
  left: 78px !important;
  width: 42px !important;
  height: 42px !important;
}
.map-mascot {
  display: none !important;
}
.map-legend {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-content: start !important;
  column-gap: 28px !important;
}
.map-legend li {
  min-width: 0 !important;
  min-height: 112px !important;
  align-content: start !important;
  padding-top: 18px !important;
  padding-bottom: 18px !important;
}

/* ===== [PROGRAM] ===== */
/* Program modal: use the delivered production images and a compact editorial layout. */
.program-dialog {
  width: min(94vw, 1280px) !important;
  border: 1px solid #3d3d44 !important;
  scrollbar-width: thin;
  scrollbar-color: var(--purple) #26262c;
}
.program-dialog::-webkit-scrollbar {
  width: 9px;
}
.program-dialog::-webkit-scrollbar-track {
  background: #26262c;
}
.program-dialog::-webkit-scrollbar-thumb {
  border: 2px solid #26262c;
  border-radius: 999px;
  background: var(--purple);
}
.program-dialog h3 {
  max-width: 820px;
  margin-bottom: 26px !important;
  font-size: clamp(27px, 3vw, 42px) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.035em;
}
.program-dialog .program-details-body > p {
  max-width: 880px;
  font-size: 15px !important;
  line-height: 1.7 !important;
}
.program-modal-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 28px;
}
.program-modal-gallery figure {
  margin: 0;
  overflow: hidden;
  background: #0d0d10;
  aspect-ratio: 16/9;
}
.program-modal-gallery img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
}
.program-modal-gallery figure:hover img {
  transform: scale(1.025);
}
.program-dialog[data-program="exhibition"] .program-modal-gallery {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-auto-rows: 150px;
}
.program-dialog[data-program="exhibition"] .program-modal-gallery figure {
  aspect-ratio: auto;
}
.program-dialog[data-program="exhibition"]
  .program-modal-gallery
  figure:first-child {
  grid-column: span 4;
  grid-row: span 2;
}
.program-dialog[data-program="exhibition"]
  .program-modal-gallery
  figure:nth-child(2) {
  grid-column: span 2;
  grid-row: span 2;
}
.program-dialog[data-program="exhibition"]
  .program-modal-gallery
  figure:nth-child(n + 3) {
  grid-column: span 2;
}
.program-dialog[data-program="stage"] .program-modal-gallery {
  grid-template-columns: 1.25fr 0.75fr;
}
.program-dialog[data-program="stage"]
  .program-modal-gallery
  figure:first-child {
  aspect-ratio: 16/9;
}
.program-dialog[data-program="stage"] .program-modal-gallery figure:last-child {
  aspect-ratio: auto;
}
.program-dialog[data-program="merch"] .program-modal-gallery {
  grid-template-columns: 1.35fr 0.65fr;
}
.program-dialog[data-program="merch"] .program-modal-gallery figure {
  aspect-ratio: auto;
  min-height: 380px;
}
.program-dialog[data-program="event"] .program-modal-gallery {
  display: none;
}
.program-dialog[data-program="stage"] .program-modal-gallery {
  display: block;
}
.program-dialog[data-program="stage"] .program-modal-gallery figure {
  aspect-ratio: 16/8.2 !important;
}
.program-dialog[data-program="stage"] .program-modal-gallery img {
  filter: blur(10px);
  opacity: 0.72;
  transform: scale(1.03);
}
.program-modal-release {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 0 0 26px;
  padding: 17px 20px;
  border-left: 5px solid var(--mint);
  background: #25252b;
}
.program-modal-release strong {
  font-size: 15px;
}
.program-modal-release span {
  color: var(--yellow);
  font-size: 13px;
  font-weight: 900;
}
.event-list {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 14px !important;
  width: min(100%, 1080px);
  margin: 34px auto 0 !important;
}
.event-list article {
  position: relative;
  display: grid;
  min-height: 360px;
  grid-template-columns: minmax(0, 1fr) 42%;
  grid-template-rows: repeat(4, auto);
  align-content: center;
  gap: 0 30px;
  padding: 34px !important;
  border: 0 !important;
  background: #ff1717 !important;
  color: #fff;
  overflow: hidden;
}
.event-list article:nth-child(2) {
  background: #df91d9 !important;
}
.event-list article:nth-child(3) {
  background: #5574f3 !important;
}
.event-list article:nth-child(4) {
  background: #45434d !important;
}
.event-list article:nth-child(5) {
  background: #8375eb !important;
}
.event-list article:nth-child(6) {
  background: #ce3034 !important;
}
.event-list article:nth-child(7) {
  background: #6474ee !important;
}
.event-list article:nth-child(8) {
  background: #8f435e !important;
}
.event-list article:nth-child(9) {
  background: #55515f !important;
}
.event-list article:nth-child(10) {
  background: #35343b !important;
}
.event-card-media {
  grid-column: 2;
  grid-row: 1/5;
  width: 100%;
  height: 292px;
  min-height: 0;
  align-self: center;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(255, 255, 255, 0.12);
  box-shadow: 12px 12px 0 rgba(0, 0, 0, 0.12);
}
.event-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.event-list small {
  display: block;
  margin: 0 0 9px;
  padding: 0;
  background: transparent;
  color: #dce4ff !important;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.08em;
}
.event-list strong {
  margin: 0 0 12px !important;
  color: #fff !important;
  font-size: clamp(23px, 2vw, 30px);
  line-height: 1.22;
}
.event-list p {
  color: #fff !important;
  font-size: 17px !important;
  line-height: 1.65 !important;
  opacity: 0.96;
}
.event-list em {
  display: block;
  align-self: start;
  margin-top: 18px !important;
  padding: 14px 16px !important;
  border: 1px solid rgba(255, 255, 255, 0.34);
  background: rgba(0, 0, 0, 0.12);
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 850;
  line-height: 1.55 !important;
  opacity: 1;
}
/* ===== [GUIDE] ===== */
.reward-label {
  display: flex !important;
  align-items: center;
  gap: 8px;
  margin: 0 0 11px !important;
  color: #fff !important;
  font-size: 13px !important;
  letter-spacing: 0.08em;
}
.reward-icon {
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: #15151a;
}
.reward-icon svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.reward-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.reward-chips > span {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  padding: 5px 10px;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #15151a;
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
  line-height: 1.25;
}

/* ===== [FAQ] ===== */
.faq-list {
  display: block !important;
  margin-top: 64px !important;
  border-top: 2px solid #fff !important;
}
.faq-entry {
  display: grid;
  grid-template-columns: minmax(320px, 0.8fr) minmax(0, 1.2fr);
  gap: clamp(40px, 6vw, 110px);
  padding: 46px 0;
  border-bottom: 1px solid #4c4c54;
}
.faq-entry header {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}
.faq-entry header span {
  padding-top: 7px;
  color: var(--yellow);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.05em;
}
.faq-entry h3 {
  margin: 0;
  color: #fff;
  font-size: clamp(20px, 1.8vw, 28px);
  line-height: 1.35;
  letter-spacing: -0.035em;
}
.faq-answer {
  max-width: 760px;
  color: #b7b7bd;
  font-size: 17px;
  line-height: 1.8;
}
.faq-entry:nth-child(5) .faq-answer,
.faq-entry:nth-child(6) .faq-answer,
.faq-entry:nth-child(7) .faq-answer {
  white-space: normal;
}

/* Keep the original FAQ accordion; structure only the answer content. */
.faq-list {
  display: block !important;
  margin: 70px auto 0 !important;
  border-top: 1px solid #555 !important;
}
.faq-list details {
  display: block !important;
  border: 0 !important;
  border-bottom: 1px solid #555 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.faq-list summary {
  display: grid !important;
  grid-template-columns: 64px minmax(0, 1fr) 48px !important;
  min-height: 0 !important;
  padding: 28px 0 !important;
  font-size: 20px !important;
}
.faq-list summary > span {
  display: block !important;
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #888 !important;
  font-size: 14px !important;
}
.faq-list details[open] summary > span {
  background: transparent !important;
  color: var(--yellow) !important;
}
.faq-list .faq-answer {
  max-width: none;
  margin: 0;
  padding: 0 48px 34px 64px;
  color: #aaa;
  font-size: 16px;
  line-height: 1.75;
}
.faq-list .faq-answer p {
  margin: 0 0 10px;
}
.faq-list .faq-answer strong {
  color: #fff;
  font-weight: 900;
}
.faq-note {
  padding: 12px 14px;
  border-left: 3px solid var(--yellow);
  background: #18181d;
  color: #ddd;
}
.faq-table-wrap {
  margin: 18px 0 14px;
  overflow-x: auto;
}
.faq-answer table {
  width: 100%;
  min-width: 560px;
  border: 1px solid #555;
  border-collapse: collapse;
  background: #121217;
  color: #ccc;
}
.faq-answer th,
.faq-answer td {
  padding: 12px 14px;
  border: 1px solid #45454d;
  text-align: left;
  vertical-align: middle;
}
.faq-answer thead th {
  background: #24242a;
  color: #fff;
}
.faq-answer tbody th {
  width: 150px;
  background: #1d1d22;
  color: #fff;
}
.faq-session {
  width: min(100%, 620px) !important;
  min-width: 440px !important;
}

/* ===== [GUIDE] ===== */
/* Applied notice option: editorial rows, not a repeated card grid. */
.guide-view-notice .notice-groups {
  display: block;
  margin: 10px 0 0;
  border-top: 2px solid var(--ink);
}
.guide-view-notice .notice-group {
  display: grid;
  grid-template-columns: 70px minmax(190px, 0.55fr) minmax(0, 1.45fr);
  gap: 22px;
  min-height: 0;
  padding: 28px 0;
  border: 0;
  border-bottom: 1px solid #aaa;
  background: transparent;
  color: var(--ink);
  overflow: visible;
}
.guide-view-notice .notice-group > b {
  position: static;
  align-self: start;
  color: var(--notice-accent);
  font-size: 14px;
  line-height: 48px;
  opacity: 1;
}
.guide-view-notice .notice-group .notice-icon {
  position: static;
  grid-column: 1;
  grid-row: 1;
  width: 48px;
  height: 48px;
}
.guide-view-notice .notice-group > b {
  grid-column: 1;
  grid-row: 1;
  justify-self: end;
  transform: translate(10px, -17px);
}
.guide-view-notice .notice-group > strong {
  grid-column: 2;
  grid-row: 1;
  margin: 5px 0 0;
  font-size: 22px;
}
.guide-view-notice .notice-group > strong:after {
  margin-top: 11px;
}
.guide-view-notice .notice-group ul {
  grid-column: 3;
  grid-row: 1;
  margin: 1px 0 0;
  padding-left: 20px;
  font-size: 15px;
  line-height: 1.75;
}

/* ===== [MAP] ===== */
@media (max-width: 1100px) {
  .festa-map-layout {
    grid-template-columns: 1fr !important;
  }
  .map-legend {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .program-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .platform-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 20px 24px !important;
    padding: 0 !important;
    background: transparent !important;
  }
  .platform-grid > * {
    min-height: 168px !important;
    background: transparent !important;
  }
}
/* ===== [ABOUT] ===== */
@media (max-width: 800px) {
  .about-copy:before {
    bottom: -0.08em !important;
    font-size: clamp(128px, 40vw, 220px) !important;
  }
  .about-copy:after {
    height: 35% !important;
    background-size: 12px 12px !important;
  }
}

/* ===== [FAQ] ===== */
/* FAQ session times are content-sized; the two-column table must not create
   a horizontal scroller simply because the answer area is narrow. */
.faq-table-wrap:has(.faq-session) {
  overflow-x: visible !important;
}
.faq-answer table.faq-session {
  width: max-content !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: auto !important;
}
.faq-answer table.faq-session tbody th {
  width: auto !important;
  white-space: nowrap !important;
}
.faq-answer table.faq-session td {
  width: auto !important;
  white-space: nowrap !important;
}

/* Comparison table stays compact; only the two pass columns share the same
   width, while the label column remains narrow. */
.faq-answer table.faq-compare {
  width: min(900px, 100%) !important;
  min-width: 560px !important;
  table-layout: fixed !important;
}
.faq-answer table.faq-compare th:first-child {
  width: 150px !important;
}
.faq-answer table.faq-compare th:nth-child(2),
.faq-answer table.faq-compare th:nth-child(3),
.faq-answer table.faq-compare td:nth-child(2),
.faq-answer table.faq-compare td:nth-child(3) {
  width: auto !important;
}
@media (max-width: 800px) {
  .faq-answer table.faq-compare th:first-child {
    width: 112px !important;
  }
}

/* ===== [PLATFORMS] ===== */
/* An odd final platform occupies the left grid cell, never a centered
   full-width row. */
@media (max-width: 800px) {
  #platforms .platform-grid > a:last-child {
    grid-column-start: 1 !important;
    grid-column-end: 2 !important;
    width: auto !important;
    justify-self: stretch !important;
  }
  #platforms .platform-grid > .platform-card:last-child {
    grid-column-start: 1 !important;
    grid-column-end: 2 !important;
    width: auto !important;
    justify-self: stretch !important;
  }
}

/* ===== [LOCATION] ===== */
#location .location-map {
  position: relative !important;
  min-height: 560px !important;
  background: #f5f3ef !important;
  filter: none !important;
}
#location .location-map:before,
#location .location-map:after {
  display: none !important;
}
#location .location-map iframe {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 560px !important;
  border: 0 !important;
  filter: none !important;
}
#location .location-naver-map {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}
#location .location-map-link {
  position: absolute !important;
  z-index: 4 !important;
  right: 18px !important;
  bottom: 18px !important;
  display: inline-flex !important;
  min-height: 48px !important;
  align-items: center !important;
  padding: 12px 16px !important;
  background: rgba(21, 21, 26, 0.92) !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 900 !important;
}
@media (max-width: 800px) {
  #location .location-map {
    height: 400px !important;
    min-height: 400px !important;
    aspect-ratio: auto !important;
  }
  #location .location-map iframe {
    min-height: 400px !important;
  }
  #location .location-map-link {
    right: 10px !important;
    bottom: 10px !important;
    min-height: 44px !important;
    padding: 10px 13px !important;
    font-size: 12px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Reward rows: quiet label, visible contents, top alignment. Card colors,
   shadows and copy remain untouched. */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
.guide-event-copy .event-list article > em {
  display: grid !important;
  grid-template-columns: max-content minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 8px 20px !important;
  padding-top: 14px !important;
  padding-bottom: 14px !important;
  background: transparent !important;
}
/* ===== [GUIDE] ===== */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
.guide-event-copy .reward-label {
  display: inline-flex !important;
  align-items: flex-start !important;
  gap: 7px !important;
  margin: 0 !important;
  padding: 4px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.68) !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
  letter-spacing: 0.1em !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label:before,
.guide-event-copy .reward-label:before {
  display: inline-block !important;
  width: 16px !important;
  height: 16px !important;
  flex: 0 0 16px !important;
  background: currentColor !important;
  content: "" !important;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12v10H4V12M2 7h20v5H2zM12 22V7'/%3E%3Cpath d='M12 7H7.5A2.5 2.5 0 1 1 10 4.5L12 7Zm0 0h4.5A2.5 2.5 0 1 0 14 4.5L12 7Z'/%3E%3C/svg%3E")
    center/contain no-repeat !important;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12v10H4V12M2 7h20v5H2zM12 22V7'/%3E%3Cpath d='M12 7H7.5A2.5 2.5 0 1 1 10 4.5L12 7Zm0 0h4.5A2.5 2.5 0 1 0 14 4.5L12 7Z'/%3E%3C/svg%3E")
    center/contain no-repeat !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips,
.guide-event-copy .reward-chips {
  display: flex !important;
  min-width: 0 !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
  gap: 5px 0 !important;
  padding-top: 1px !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
.guide-event-copy .reward-chips > span {
  display: inline !important;
  min-height: 0 !important;
  padding: 3px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 850 !important;
  line-height: 1.45 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span:not(:last-child):after,
.guide-event-copy .reward-chips > span:not(:last-child):after {
  display: inline !important;
  margin: 0 9px !important;
  color: rgba(255, 255, 255, 0.38) !important;
  content: "/" !important;
}
/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > em,
  .guide-event-copy .event-list article > em {
    grid-template-columns: 1fr !important;
    gap: 4px !important;
    align-items: start !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .reward-chips
    > span,
  .guide-event-copy .reward-chips > span {
    font-size: 14px !important;
  }
}

/* ===== [ABOUT] ===== */
/* Final ABOUT spacing adjustment — terminal block. */
@media (min-width: 801px) {
  #about .about-copy {
    min-height: 560px !important;
    padding: 88px 24px 76px !important;
  }
  #about .intro-facts {
    margin-top: 48px !important;
  }
}
@media (max-width: 800px) {
  #about .about-copy {
    min-height: 500px !important;
    padding: 76px 20px 58px !important;
  }
  #about .intro-facts {
    margin-top: 38px !important;
  }
}

/* ===== [FOOTER] ===== */
/* Terminal component locks. */
.full-footer-top {
  position: fixed !important;
  z-index: 75 !important;
  top: auto !important;
  right: 18px !important;
  bottom: 22px !important;
  width: 96px !important;
  height: 96px !important;
  grid-column: auto !important;
  grid-row: auto !important;
}
.full-footer-top i {
  top: 42% !important;
  font-size: 34px !important;
}
.full-footer-top span {
  bottom: 12px !important;
  font-size: 11px !important;
}
/* ===== [ABOUT] ===== */
#about .about-copy:before {
  top: 20px !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  font-size: clamp(190px, 28vw, 500px) !important;
  transform: translate(-50%, -50%) !important;
}
/* ===== [MAP] ===== */
#map.festa-map {
  background-color: #f7f4ef !important;
  background-image: radial-gradient(
    rgba(21, 21, 25, 0.18) 1.2px,
    transparent 1.2px
  ) !important;
  background-size: 12px 12px !important;
}
/* ===== [GUIDE] ===== */
#guide.guide {
  background-image: repeating-linear-gradient(
    135deg,
    transparent 0 7px,
    rgba(21, 21, 25, 0.045) 7px 8px
  ) !important;
}
/* ===== [PROGRAM] ===== */
@media (min-width: 801px) {
  html body .section-heading {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: minmax(0, 58vw) minmax(300px, 1fr) !important;
    column-gap: clamp(28px, 3vw, 52px) !important;
    align-items: end !important;
  }
  html body .section-heading > h2,
  html body .section-heading > .program-title-wrap,
  html body .section-subtitle {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }
  html body .section-subtitle {
    justify-self: stretch !important;
  }
}
/* ===== [MAP] ===== */
@media (max-width: 800px) {
  .full-footer-top {
    position: fixed !important;
    top: auto !important;
    right: 10px !important;
    bottom: 14px !important;
    width: 96px !important;
    height: 96px !important;
  }
  #map .map-legend {
    align-content: start !important;
  }
  #map .map-legend li {
    min-height: 64px !important;
    padding-top: 14px !important;
    padding-bottom: 14px !important;
  }
  html body .section-heading {
    display: block !important;
    width: 100% !important;
  }
  html body .section-heading > h2,
  html body .section-heading > .program-title-wrap,
  html body .section-subtitle {
    width: 100% !important;
    max-width: none !important;
  }
}

/* ===== [FOOTER] ===== */
/* Absolute final locks: loaded after all historical overrides. */
.full-footer-top {
  position: fixed !important;
  z-index: 75 !important;
  top: auto !important;
  right: 18px !important;
  bottom: 22px !important;
  width: 96px !important;
  height: 96px !important;
  grid-column: auto !important;
  grid-row: auto !important;
}
.full-footer-top i {
  top: 42% !important;
  font-size: 34px !important;
}
.full-footer-top span {
  bottom: 12px !important;
  font-size: 11px !important;
}
/* ===== [ABOUT] ===== */
#about .about-copy:before {
  top: 20px !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  font-size: clamp(190px, 28vw, 500px) !important;
  transform: translate(-50%, -50%) !important;
}
/* ===== [MAP] ===== */
#map.festa-map {
  background-color: #f7f4ef !important;
  background-image: radial-gradient(
    rgba(21, 21, 25, 0.18) 1.2px,
    transparent 1.2px
  ) !important;
  background-size: 12px 12px !important;
}
/* ===== [GUIDE] ===== */
#guide.guide {
  background-image: repeating-linear-gradient(
    135deg,
    transparent 0 7px,
    rgba(21, 21, 25, 0.045) 7px 8px
  ) !important;
}
/* ===== [PROGRAM] ===== */
@media (min-width: 801px) {
  html body .section-heading {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: minmax(0, 58vw) minmax(300px, 1fr) !important;
    column-gap: clamp(28px, 3vw, 52px) !important;
    align-items: end !important;
  }
  html body .section-heading > h2,
  html body .section-heading > .program-title-wrap,
  html body .section-subtitle {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }
  html body .section-subtitle {
    justify-self: stretch !important;
  }
}
/* ===== [MAP] ===== */
@media (max-width: 800px) {
  .full-footer-top {
    position: fixed !important;
    top: auto !important;
    right: 10px !important;
    bottom: 14px !important;
    width: 96px !important;
    height: 96px !important;
  }
  #map .map-legend {
    align-content: start !important;
  }
  #map .map-legend li {
    min-height: 64px !important;
    padding-top: 14px !important;
    padding-bottom: 14px !important;
  }
  html body .section-heading {
    display: block !important;
    width: 100% !important;
  }
  html body .section-heading > h2,
  html body .section-heading > .program-title-wrap,
  html body .section-subtitle {
    width: 100% !important;
    max-width: none !important;
  }
}

/* ===== [ABOUT] ===== */
/* FINAL FIFO LOCKS — keep these after every legacy override. */
#about .about-copy:before {
  top: 20px !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  font-size: clamp(190px, 28vw, 500px) !important;
  transform: translate(-50%, -50%) !important;
}
/* ===== [MAP] ===== */
#map.festa-map {
  background-color: #f7f4ef !important;
  background-image: radial-gradient(
    rgba(21, 21, 25, 0.18) 1.2px,
    transparent 1.2px
  ) !important;
  background-size: 12px 12px !important;
}
/* ===== [GUIDE] ===== */
#guide.guide {
  background-image: repeating-linear-gradient(
    135deg,
    transparent 0 7px,
    rgba(21, 21, 25, 0.045) 7px 8px
  ) !important;
}
/* ===== [FOOTER] ===== */
.full-footer-top {
  position: fixed !important;
  z-index: 75 !important;
  top: auto !important;
  right: 18px !important;
  bottom: 22px !important;
  width: 96px !important;
  height: 96px !important;
  grid-column: auto !important;
  grid-row: auto !important;
}
.full-footer-top i {
  top: 42% !important;
  font-size: 34px !important;
}
.full-footer-top span {
  bottom: 12px !important;
  font-size: 11px !important;
}
/* ===== [PROGRAM] ===== */
@media (min-width: 801px) {
  html body .section-heading {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: minmax(0, 58vw) minmax(300px, 1fr) !important;
    column-gap: clamp(28px, 3vw, 52px) !important;
    align-items: end !important;
  }
  html body .section-heading > h2,
  html body .section-heading > .program-title-wrap,
  html body .section-subtitle {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }
  html body .section-subtitle {
    justify-self: stretch !important;
  }
}
/* ===== [MAP] ===== */
@media (max-width: 800px) {
  #map .map-legend {
    align-content: start !important;
  }
  #map .map-legend li {
    min-height: 64px !important;
    padding-top: 14px !important;
    padding-bottom: 14px !important;
  }
  .full-footer-top {
    position: fixed !important;
    top: auto !important;
    right: 10px !important;
    bottom: 14px !important;
    width: 96px !important;
    height: 96px !important;
  }
  html body .section-heading {
    display: block !important;
    width: 100% !important;
  }
  html body .section-heading > h2,
  html body .section-heading > .program-title-wrap,
  html body .section-subtitle {
    width: 100% !important;
    max-width: none !important;
  }
}

/* ===== [ABOUT] ===== */
/* ABOUT background wordmark: anchor to the section top and lower it by exactly 20px. */
#about .about-copy:before {
  top: 20px !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  font-size: clamp(190px, 28vw, 500px) !important;
  transform: translate(-50%, -50%) !important;
}

/* ===== [PROGRAM] ===== */
/* Shared section heading geometry: one rule controls every title/subtitle pair. */
@media (min-width: 801px) {
  html body .section-heading {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: minmax(0, 58vw) minmax(300px, 1fr) !important;
    column-gap: clamp(28px, 3vw, 52px) !important;
    align-items: end !important;
  }
  html body .section-heading > h2,
  html body .section-heading > .program-title-wrap {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }
  html body .section-subtitle {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    justify-self: stretch !important;
  }
}
@media (max-width: 800px) {
  html body .section-heading {
    display: block !important;
    width: 100% !important;
  }
  html body .section-heading > h2,
  html body .section-heading > .program-title-wrap,
  html body .section-subtitle {
    width: 100% !important;
    max-width: none !important;
  }
}

/* ===== [FOOTER] ===== */
/* Restore the 0911 TOP button dimensions and viewport offsets. */
.full-footer-top {
  position: fixed !important;
  z-index: 75 !important;
  top: auto !important;
  right: 26px !important;
  bottom: 26px !important;
  width: 78px !important;
  height: 78px !important;
  grid-column: auto !important;
  grid-row: auto !important;
}
.full-footer-top i {
  top: 43% !important;
  font-size: 28px !important;
}
.full-footer-top span {
  bottom: 10px !important;
  font-size: 10px !important;
}
@media (max-width: 800px) {
  .full-footer-top {
    position: fixed !important;
    top: auto !important;
    right: 14px !important;
    bottom: 18px !important;
    width: 78px !important;
    height: 78px !important;
  }
}

/* ===== [MAP] ===== */
/* Restore the 0911 section textures and compact map legend rhythm. */
#map.festa-map {
  background-color: #f7f4ef !important;
  background-image: radial-gradient(
    rgba(21, 21, 25, 0.18) 1.2px,
    transparent 1.2px
  ) !important;
  background-size: 12px 12px !important;
}
/* ===== [GUIDE] ===== */
#guide.guide {
  background-image: repeating-linear-gradient(
    135deg,
    transparent 0 7px,
    rgba(21, 21, 25, 0.045) 7px 8px
  ) !important;
}
/* ===== [MAP] ===== */
@media (max-width: 800px) {
  #map .map-legend {
    align-content: start !important;
  }
  #map .map-legend li {
    min-height: 64px !important;
    padding-top: 14px !important;
    padding-bottom: 14px !important;
  }
}

/* ===== [FOOTER] ===== */
/* Last-applied responsive alignment fixes. */
html body .full-footer-brand {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}
html body .full-footer-brand > img {
  margin-left: 0 !important;
  object-position: left center !important;
}
html body .full-footer-brand .full-footer-social {
  justify-content: flex-start !important;
  margin-left: 0 !important;
}
html body .full-footer-social button,
html body .full-footer-social a {
  flex: 0 0 34px !important;
  width: 34px !important;
  height: 34px !important;
}
/* ===== [HEADER] ===== */
@media (min-width: 801px) and (max-width: 1180px) {
  html body .topbar nav,
  html body .topbar nav a {
    font-size: 14px !important;
  }
}
/* HEADER LOCK: approved PC GNB sizing. Do not override in later work. */
@media (min-width: 801px) {
  html body .topbar nav {
    font-size: 16px !important;
    letter-spacing: 0.02em !important;
  }
  html body .topbar nav a {
    flex: 0 0 auto !important;
    font-size: 16px !important;
    white-space: nowrap !important;
  }
}
@media (min-width: 801px) and (max-width: 900px) {
  html body .topbar nav {
    gap: 0 !important;
  }
}
/* ===== [PROGRAM] ===== */
@media (min-width: 801px) {
  html body #program .program-head,
  html body #map .festa-map-head,
  html body #guide .guide-head,
  html body #platforms .platforms-head {
    grid-template-columns: minmax(485px, 55vw) minmax(210px, 1fr) !important;
    gap: clamp(20px, 2.5vw, 44px) !important;
  }
  html body #program .program-head h2,
  html body #map .festa-map-head h2,
  html body #guide .guide-head h2,
  html body #platforms .platforms-head h2 {
    width: 100% !important;
    max-width: none !important;
  }
  html body #program .program-head > p,
  html body #map .festa-map-head > p,
  html body #guide .guide-head > p,
  html body #platforms .platforms-head > p {
    width: min(100%, 32vw) !important;
    max-width: 520px !important;
    justify-self: end !important;
  }
}
html body #program .program-head h2,
html body #map .festa-map-head h2,
html body #guide .guide-head h2,
html body #location .location-copy h2,
html body #platforms .platforms-head h2,
html body #faq > h2 {
  position: relative !important;
}
html body .program-script,
html body .map-script,
html body .guide-script,
html body .location-script,
html body .platforms-script,
html body .faq-script {
  top: -0.72em !important;
  left: 0 !important;
  margin: 0 !important;
  transform: rotate(-4deg) !important;
}
/* ===== [ABOUT] ===== */
html body #about .about-copy {
  min-height: 500px !important;
  padding: 68px 24px 54px !important;
}
html body #about .about-copy:before {
  bottom: -0.22em !important;
  transform: translateY(33px) !important;
}
html body #about .about-copy:after {
  background-image: radial-gradient(
    rgba(255, 255, 255, 0.24) 1.2px,
    transparent 1.2px
  ) !important;
  opacity: 0.48 !important;
}
@media (max-width: 800px) {
  html body #about .about-copy {
    min-height: 450px !important;
    padding: 58px 20px 46px !important;
  }
}
/* ===== [FOOTER] ===== */
@media (min-width: 801px) {
  html body .full-footer {
    padding: 0 max(40px, 4vw) !important;
  }
  html body .full-footer-inner {
    display: flex !important;
    width: 100% !important;
    max-width: 1540px !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    column-gap: 3% !important;
    row-gap: 34px !important;
    margin: 0 auto !important;
    padding: 44px 0 34px !important;
  }
  html body .full-footer-brand {
    flex: 0 1 20% !important;
    min-width: 0 !important;
  }
  html body .full-footer-info:nth-of-type(2) {
    flex: 0 1 24% !important;
    min-width: 0 !important;
  }
  html body .full-footer-info:nth-of-type(3) {
    flex: 0 1 44% !important;
    min-width: 0 !important;
  }
  html body .footer-organizer-logos {
    display: flex !important;
    width: 100% !important;
    max-width: 410px !important;
    gap: 6% !important;
  }
  html body .footer-organizer-logos img {
    max-width: 47% !important;
    object-fit: contain !important;
    object-position: left center !important;
  }
  html body .full-footer-inner > small {
    flex: 0 0 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
}

/* Final mid-width header/footer restoration. */
.full-footer-brand {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}
.full-footer-brand > img {
  margin-left: 0 !important;
  object-position: left center !important;
}
.full-footer-brand .full-footer-social {
  justify-content: flex-start !important;
  margin-left: 0 !important;
}
.full-footer-social button,
.full-footer-social a {
  flex: 0 0 34px !important;
  width: 34px !important;
  height: 34px !important;
}
/* ===== [HEADER] ===== */
@media (min-width: 801px) and (max-width: 1180px) {
  .topbar nav,
  .topbar nav a {
    font-size: 14px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Final PROGRAM title/copy width balance. */
@media (min-width: 801px) {
  #program .program-head {
    grid-template-columns: minmax(0, min(62vw, 900px)) minmax(210px, 1fr) !important;
    gap: clamp(24px, 3vw, 52px) !important;
  }
  #program .program-head h2 {
    width: 100% !important;
    max-width: none !important;
  }
  #program .program-head > p {
    width: min(100%, 32vw) !important;
    max-width: 520px !important;
    justify-self: end !important;
  }
}

/* ===== [FOOTER] ===== */
/* Mid-width restoration based on the 0911 layout. */
.full-footer-brand {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}
.full-footer-brand > img {
  margin-left: 0 !important;
  object-position: left center !important;
}
.full-footer-brand .full-footer-social {
  justify-content: flex-start !important;
  margin-left: 0 !important;
}
.full-footer-social button,
.full-footer-social a {
  flex: 0 0 34px !important;
  width: 34px !important;
  height: 34px !important;
}
/* ===== [HEADER] ===== */
@media (min-width: 801px) and (max-width: 1180px) {
  .topbar nav,
  .topbar nav a {
    font-size: 14px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Give the PROGRAM title viewport-based priority over its supporting copy. */
@media (min-width: 801px) {
  #program .program-head {
    grid-template-columns: minmax(0, min(62vw, 900px)) minmax(210px, 1fr) !important;
    gap: clamp(24px, 3vw, 52px) !important;
  }
  #program .program-head h2 {
    width: 100% !important;
    max-width: none !important;
  }
  #program .program-head > p {
    width: min(100%, 32vw) !important;
    max-width: 520px !important;
    justify-self: end !important;
  }
}

/* ===== [FOOTER] ===== */
/* Restore the 0911 mid-width header/footer sizing. */
.full-footer-social button,
.full-footer-social a {
  flex: 0 0 34px !important;
  width: 34px !important;
  height: 34px !important;
}
/* ===== [HEADER] ===== */
@media (min-width: 801px) and (max-width: 1180px) {
  .topbar nav,
  .topbar nav a {
    font-size: 14px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* PROGRAM heading gets viewport-based priority; the supporting copy uses the
   remaining column instead of forcing the title into a narrow fixed track. */
@media (min-width: 801px) {
  #program .program-head {
    grid-template-columns: minmax(0, min(62vw, 900px)) minmax(210px, 1fr) !important;
    gap: clamp(24px, 3vw, 52px) !important;
  }
  #program .program-head h2 {
    width: 100% !important;
    max-width: none !important;
  }
  #program .program-head > p {
    width: min(100%, 32vw) !important;
    max-width: 520px !important;
    justify-self: end !important;
  }
}

.program-dialog[data-program="exhibition"] .exhibition-images {
  margin-bottom: 40px !important;
}
@media (max-width: 800px) {
  .program-dialog[data-program="exhibition"] .exhibition-images {
    margin-bottom: 28px !important;
  }
}

/* ===== [ABOUT] ===== */
#about .about-copy h1 {
  font-size: clamp(44px, 4.2vw, 60px) !important;
}
@media (max-width: 800px) {
  #about .about-copy h1 {
    font-size: clamp(34px, 9vw, 43px) !important;
  }
}

/* ===== [PROGRAM] ===== */
#program .program-head h2 {
  max-width: min(72vw, 1100px) !important;
}
@media (max-width: 800px) {
  #program .program-head h2 {
    max-width: calc(100vw - 48px) !important;
  }
}

/* ===== [ABOUT] ===== */
/* ABOUT spacing: a small reduction only. */
@media (min-width: 801px) {
  #about .about-copy {
    min-height: 560px !important;
    padding: 88px 24px 76px !important;
  }
  #about .intro-facts {
    margin-top: 48px !important;
  }
}
@media (max-width: 800px) {
  #about .about-copy {
    min-height: 500px !important;
    padding: 76px 20px 58px !important;
  }
  #about .intro-facts {
    margin-top: 38px !important;
  }
}

/* ===== [LOCATION] ===== */
/* Keep the original map placeholder when the map artwork cannot be loaded. */
.location-map:has(.location-map-expand img.is-missing):before {
  position: absolute !important;
  z-index: 0 !important;
  top: 50% !important;
  left: 50% !important;
  display: block !important;
  width: 150px !important;
  height: 150px !important;
  border: 3px solid var(--yellow) !important;
  border-radius: 50% !important;
  content: "" !important;
  transform: translate(-50%, -50%) !important;
}
.location-map:has(.location-map-expand img.is-missing):after {
  position: absolute !important;
  z-index: 1 !important;
  top: 50% !important;
  left: 50% !important;
  display: block !important;
  padding: 10px 14px !important;
  background: var(--mint) !important;
  color: var(--ink) !important;
  content: "BONDAVINCI MUSEUM" !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  transform: translate(-50%, -50%) !important;
}
.location-map-expand img.is-missing {
  visibility: hidden !important;
}

/* ===== [GUIDE] ===== */
/* Guide detail tabs use one title and one vertical reading order. */
.guide-panel .shared-program-section {
  display: block !important;
  padding: 0 !important;
  background: transparent !important;
}
.guide-panel .shared-program-section header {
  position: static !important;
  padding: 0 !important;
}
.guide-panel .shared-program-section header > span {
  display: none !important;
}
.guide-panel .shared-program-section header h3 {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 0 16px !important;
  font-size: 24px !important;
  letter-spacing: -0.03em !important;
}
.guide-panel .shared-program-section header h3:before {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--purple);
  content: "";
}
.guide-panel .shared-program-section header p {
  max-width: 850px !important;
  margin: 0 0 30px !important;
  color: #68656d !important;
  font-size: 17px !important;
  line-height: 1.7 !important;
}
.guide-panel .shared-program-coming {
  width: 100% !important;
  margin-top: 0 !important;
}

/* The GUIDE handwriting is background texture, not a second heading. */
.guide-script {
  color: #3b3940 !important;
}

/* ===== [ABOUT] ===== */
/* ABOUT spacing: content-led height, without the inherited tall-section gap. */
#about,
#about .intro-inner {
  min-height: 0 !important;
  height: auto !important;
}
#about .about-copy {
  min-height: 0 !important;
  height: auto !important;
  padding: 84px 24px 72px !important;
}
@media (max-width: 800px) {
  #about .about-copy {
    min-height: 0 !important;
    padding: 68px 20px 54px !important;
  }
}

/* ===== [GUIDE] ===== */
/* Authoritative final interaction and ticket geometry overrides. */
.ticket-pass-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
}
.ticket-pass-grid > .ticket-pass {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
}
/* ===== [PROGRAM] ===== */
.ticket-compare {
  grid-template-columns: 180px minmax(0, 1fr) minmax(0, 1fr) !important;
}
.ticket-pass header > span,
.ticket-pass header > p {
  display: none !important;
}
.ticket-pass header {
  min-height: 0 !important;
  display: flex !important;
  align-items: center !important;
  padding-block: 30px !important;
}
/* ===== [MAP] ===== */
.map-legend li,
.map-legend li:hover,
.map-legend li:focus-visible,
.map-legend li.is-active,
.exhibition-chips button,
.exhibition-chips button:hover,
.exhibition-chips button:focus-visible,
.exhibition-chips button[aria-selected="true"] {
  border-left: 0 !important;
  box-shadow: none !important;
}
/* ===== [GUIDE] ===== */
@media (max-width: 800px) {
  .ticket-pass-grid {
    grid-template-columns: 1fr !important;
  }
  .ticket-compare {
    grid-template-columns: 112px 190px 190px !important;
  }
}

/* ===== [FAQ] ===== */
/* FAQ answers align to the same usable width as their questions. */
.faq-list .faq-answer {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

/* ===== [GUIDE] ===== */
/* Final notice numbering: keep the existing plain index, aligned with its title. */
.guide-view-notice .notice-group > b {
  display: block !important;
  position: static !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  justify-self: start !important;
  margin: 1px 0 0 !important;
  color: #77737a !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  opacity: 1 !important;
  transform: none !important;
}
@media (max-width: 800px) {
  .guide-view-notice .notice-group > b {
    display: block !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    font-size: 14px !important;
  }
  .guide-view-notice .notice-group > strong {
    grid-column: 2 !important;
  }
}

/* ===== [PLATFORMS] ===== */
/* Final section-subtitle scale. */
.program-head > p,
.festa-map-head > p,
.guide-head > p,
#platforms .platforms-head > p {
  font-size: 16px !important;
  line-height: 1.65 !important;
}
@media (max-width: 800px) {
  .program-head > p,
  .festa-map-head > p,
  .guide-head > p,
  #platforms .platforms-head > p {
    font-size: 14px !important;
    line-height: 1.6 !important;
  }
}

/* ===== [FOOTER] ===== */
/* Final footer geometry: all four content columns remain within the canvas. */
@media (min-width: 1101px) {
  .full-footer {
    padding-inline: max(28px, 4vw) !important;
  }
  .full-footer-inner {
    display: grid !important;
    width: 100% !important;
    max-width: 1600px !important;
    grid-template-columns: 190px 220px 410px minmax(0, 1fr) !important;
    gap: clamp(26px, 2.6vw, 48px) !important;
    align-items: start !important;
    box-sizing: border-box !important;
  }
  .full-footer-inner > * {
    min-width: 0 !important;
  }
  .full-footer-brand .full-footer-social {
    margin-left: 0 !important;
  }
  .footer-organizer-logos {
    width: 100% !important;
    max-width: 410px !important;
  }
  .full-footer small {
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-wrap: break-word !important;
  }
  .full-footer-top {
    width: 58px !important;
    height: 58px !important;
    right: 20px !important;
    bottom: 20px !important;
  }
  .full-footer-top:before {
    inset: -4px !important;
  }
  .full-footer-top i {
    font-size: 20px !important;
  }
  .full-footer-top span {
    bottom: 6px !important;
    font-size: 9px !important;
  }
}
@media (max-width: 1100px) {
  .full-footer-brand .full-footer-social {
    margin-left: 0 !important;
  }
}

/* ===== [GUIDE] ===== */
/* Ticket content is preserved; only presentation is adjusted. */
.ticket-pass-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
}
.ticket-pass-grid > .ticket-pass {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
}
/* ===== [PROGRAM] ===== */
.ticket-compare {
  grid-template-columns: 180px minmax(0, 1fr) minmax(0, 1fr) !important;
}
.ticket-pass header > span,
.ticket-pass header > p {
  display: none !important;
}
.ticket-pass header {
  min-height: 0 !important;
  display: flex !important;
  align-items: center !important;
  padding-block: 30px !important;
}
/* ===== [GUIDE] ===== */
@media (max-width: 800px) {
  .ticket-pass-grid {
    grid-template-columns: 1fr !important;
  }
  .ticket-compare {
    grid-template-columns: 112px 190px 190px !important;
  }
}

/* ===== [MAP] ===== */
/* Never use a left stripe for hover or selected states. */
.map-legend li,
.map-legend li:hover,
.map-legend li:focus-visible,
.map-legend li.is-active,
.exhibition-chips button,
.exhibition-chips button:hover,
.exhibition-chips button:focus-visible,
.exhibition-chips button[aria-selected="true"] {
  border-left: 0 !important;
  box-shadow: none !important;
}

/* ===== [PLATFORMS] ===== */
/* Section subtitles stay secondary to their section titles. */
.program-head > p,
.festa-map-head > p,
.guide-head > p,
#platforms .platforms-head > p {
  font-size: 16px !important;
  line-height: 1.65 !important;
}
@media (max-width: 800px) {
  .program-head > p,
  .festa-map-head > p,
  .guide-head > p,
  #platforms .platforms-head > p {
    font-size: 14px !important;
    line-height: 1.6 !important;
  }
}

/* ===== [FOOTER] ===== */
/* Footer: keep every column inside the viewport and share a clean top baseline. */
@media (min-width: 1101px) {
  .full-footer {
    padding-inline: max(28px, 4vw) !important;
  }
  .full-footer-inner {
    width: 100% !important;
    max-width: 1600px !important;
    grid-template-columns: 190px 220px 410px minmax(260px, 1fr) !important;
    gap: clamp(26px, 2.6vw, 48px) !important;
    align-items: start !important;
    box-sizing: border-box !important;
  }
  .full-footer-brand .full-footer-social {
    margin-left: 0 !important;
  }
  .full-footer small {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-wrap: break-word !important;
  }
  .full-footer-top {
    width: 58px !important;
    height: 58px !important;
    right: 20px !important;
    bottom: 20px !important;
  }
  .full-footer-top:before {
    inset: -4px !important;
  }
  .full-footer-top i {
    font-size: 20px !important;
  }
  .full-footer-top span {
    bottom: 6px !important;
    font-size: 9px !important;
  }
}
@media (max-width: 1100px) {
  .full-footer-brand .full-footer-social {
    margin-left: 0 !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Event-card text stays fully opaque against solid color fields. */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > small,
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong,
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
.guide-event-copy .event-list article > small,
.guide-event-copy .event-list article > strong,
.guide-event-copy .event-list article > p {
  color: #fff !important;
  opacity: 1 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
.guide-event-copy .event-list article > em,
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
.guide-event-copy .reward-label {
  color: #fff !important;
  opacity: 1 !important;
}

/* Exhibition content keeps breathing room after its final image. */
.exhibition-view {
  padding-bottom: 38px !important;
}
.exhibition-empty {
  margin: 24px 0 0 !important;
  padding: 54px 24px !important;
  border: 1px solid #b9b5af !important;
  background: #ebe7e1 !important;
  color: #68656d !important;
  text-align: center !important;
}
@media (max-width: 800px) {
  .exhibition-view {
    padding-bottom: 26px !important;
  }
}

/* ===== [MAP] ===== */
/* Map interaction: hover previews; click/focus selection persists. Never use a left stripe. */
.map-legend li.is-active {
  box-shadow: none !important;
}
.map-legend li:hover:not(.is-active),
.map-legend li:focus-visible:not(.is-active) {
  background: #ebe7e1 !important;
  box-shadow: none !important;
}
.map-legend li:hover:not(.is-active) span,
.map-legend li:focus-visible:not(.is-active) span {
  border-color: var(--purple) !important;
  background: transparent !important;
  color: var(--ink) !important;
  transform: scale(1.06) !important;
}
.map-legend li.is-active span {
  border-color: var(--ink) !important;
  background: var(--yellow) !important;
  color: var(--ink) !important;
  transform: none !important;
}
.map-pin:hover:not(.is-active),
.map-pin:focus-visible:not(.is-active) {
  z-index: 2 !important;
  background: var(--mint) !important;
  color: var(--ink) !important;
  box-shadow:
    0 0 0 5px rgba(117, 235, 185, 0.34),
    0 4px 12px rgba(0, 0, 0, 0.24) !important;
  transform: translate(-50%, -50%) scale(1.12) !important;
  outline: 0 !important;
}
.map-pin.is-active {
  z-index: 3 !important;
  background: var(--yellow) !important;
  color: var(--ink) !important;
  box-shadow:
    0 0 0 8px rgba(255, 237, 117, 0.38),
    0 5px 18px rgba(0, 0, 0, 0.28) !important;
  transform: translate(-50%, -50%) scale(1.35) !important;
}
@media (hover: none) {
  .map-pin:hover:not(.is-active) {
    background: rgba(21, 21, 26, 0.82) !important;
    color: #fff !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.28) !important;
    transform: translate(-50%, -50%) !important;
  }
}

/* ===== [GUIDE] ===== */
/* Guide tab hover is only a restrained brightness change. */
.guide-tab:before,
.guide-tab:after,
.guide-tab:hover:before,
.guide-tab:hover:after {
  display: none !important;
  content: none !important;
}
.guide-tab:hover:not([aria-selected="true"]),
.guide-tab:focus-visible:not([aria-selected="true"]) {
  background: #323138 !important;
  color: #fff !important;
  box-shadow: none !important;
  outline: 0 !important;
}
.guide-tab[aria-selected="true"],
.guide-tab[aria-selected="true"]:hover,
.guide-tab[aria-selected="true"]:focus-visible {
  background: var(--mint) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
  outline: 0 !important;
}

/* ===== [PROGRAM] ===== */
/* Restore the established event colors; only text contrast changes. */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article,
.guide-event-copy .event-list article {
  border-color: #15151a !important;
  background: #ff2424 !important;
  color: #fff !important;
  box-shadow: none !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(2),
.guide-event-copy .event-list article:nth-child(2) {
  background: #d687d1 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(3),
.guide-event-copy .event-list article:nth-child(3) {
  background: #5574f3 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(4),
.guide-event-copy .event-list article:nth-child(4) {
  background: #56535d !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(5),
.guide-event-copy .event-list article:nth-child(5) {
  background: #8375eb !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(6),
.guide-event-copy .event-list article:nth-child(6) {
  background: #ce3034 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(7),
.guide-event-copy .event-list article:nth-child(7) {
  background: #6474ee !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(8),
.guide-event-copy .event-list article:nth-child(8) {
  background: #8f435e !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(9),
.guide-event-copy .event-list article:nth-child(9) {
  background: #55515f !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(10),
.guide-event-copy .event-list article:nth-child(10) {
  background: #35343b !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > small,
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong,
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
.guide-event-copy .event-list article > small,
.guide-event-copy .event-list article > strong,
.guide-event-copy .event-list article > p {
  color: #fff !important;
  opacity: 1 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
.guide-event-copy .event-list article > em {
  background: rgba(0, 0, 0, 0.16) !important;
  color: #fff !important;
}

/* Event cards use brand color as an accent, not as a full-page color field. */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article,
.guide-event-copy .event-list article {
  --event-accent: #ff2424;
  min-height: 340px !important;
  padding: 30px 30px 0 !important;
  border: 1px solid #bdb8b2 !important;
  background: #fff !important;
  color: #15151a !important;
  box-shadow: 7px 7px 0 var(--event-accent) !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(2),
.guide-event-copy .event-list article:nth-child(2) {
  --event-accent: #d687d1;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(3),
.guide-event-copy .event-list article:nth-child(3) {
  --event-accent: #5574f3;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(4),
.guide-event-copy .event-list article:nth-child(4) {
  --event-accent: #56535d;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(5),
.guide-event-copy .event-list article:nth-child(5) {
  --event-accent: #8375eb;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(6),
.guide-event-copy .event-list article:nth-child(6) {
  --event-accent: #ce3034;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(7),
.guide-event-copy .event-list article:nth-child(7) {
  --event-accent: #6474ee;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(8),
.guide-event-copy .event-list article:nth-child(8) {
  --event-accent: #8f435e;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(9),
.guide-event-copy .event-list article:nth-child(9) {
  --event-accent: #55515f;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(10),
.guide-event-copy .event-list article:nth-child(10) {
  --event-accent: #35343b;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:before,
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:after,
.guide-event-copy .event-list article:before,
.guide-event-copy .event-list article:after {
  display: none !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > small,
.guide-event-copy .event-list article > small {
  color: var(--event-accent) !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong,
.guide-event-copy .event-list article > strong {
  color: #15151a !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
.guide-event-copy .event-list article > p {
  color: #555159 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-card-media,
.guide-event-copy .event-card-media {
  min-height: 240px !important;
  background: #f2eee8 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
.guide-event-copy .event-list article > em {
  margin: 22px -30px 0 !important;
  padding: 16px 30px 18px !important;
  border-top: 1px solid #d8d3cd !important;
  background: color-mix(in srgb, var(--event-accent) 10%, #fff) !important;
  color: #15151a !important;
}
/* ===== [GUIDE] ===== */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
.guide-event-copy .reward-label {
  color: var(--event-accent) !important;
  font-weight: 850 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
.guide-event-copy .reward-chips > span {
  color: #15151a !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span:not(:last-child):after,
.guide-event-copy .reward-chips > span:not(:last-child):after {
  color: #aaa49e !important;
}
/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article,
  .guide-event-copy .event-list article {
    padding: 0 !important;
    box-shadow: 5px 5px 0 var(--event-accent) !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > small,
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > strong,
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > p,
  .guide-event-copy .event-list article > small,
  .guide-event-copy .event-list article > strong,
  .guide-event-copy .event-list article > p {
    margin-right: 20px !important;
    margin-left: 20px !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > em,
  .guide-event-copy .event-list article > em {
    margin: 18px 0 0 !important;
    padding: 15px 20px 17px !important;
  }
}

/* ===== [GUIDE] ===== */
/* Hover previews an action; click/focus keeps the selected state. */
@media (hover: hover) {
  .guide-tab {
    position: relative !important;
    overflow: hidden !important;
  }
  .guide-tab:hover:not([aria-selected="true"]) {
    background: #2d2d33 !important;
    color: #fff !important;
    box-shadow: inset 0 -4px 0 #d78bc9 !important;
  }
  .guide-tab:hover:not([aria-selected="true"]):after {
    position: absolute !important;
    right: 18px !important;
    bottom: 10px !important;
    display: block !important;
    color: #d78bc9 !important;
    content: "✦" !important;
    font-size: 42px !important;
    line-height: 1 !important;
  }
  .map-legend li:hover:not(.is-active) {
    padding-right: 12px !important;
    padding-left: 12px !important;
    background: #ebe7e1 !important;
  }
  .map-legend li:hover:not(.is-active) span {
    background: transparent !important;
    color: var(--ink) !important;
    transform: scale(1.06);
  }
}
.guide-tab[aria-selected="true"],
.guide-tab[aria-selected="true"]:hover {
  background: var(--mint) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
}
.guide-tab[aria-selected="true"]:after {
  display: none !important;
  content: none !important;
}
/* ===== [MAP] ===== */
.map-legend li.is-active {
  padding-right: 12px !important;
  padding-left: 12px !important;
  background: #fff !important;
  box-shadow: inset 4px 0 0 var(--purple) !important;
}
.map-legend li.is-active span {
  border-color: var(--ink) !important;
  background: var(--yellow) !important;
  color: var(--ink) !important;
}

/* ===== [PROGRAM] ===== */
/* PROGRAM follows the same mobile content gutter as every other section. */
@media (max-width: 800px) {
  #program .program-head {
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  #program .program-grid {
    width: calc(100% + 20px) !important;
    margin-right: -20px !important;
    margin-left: 0 !important;
    padding-right: 20px !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
  }
  #program .program-grid::-webkit-scrollbar {
    display: none !important;
  }
  #program .program-card,
  #program .program-card:nth-child(4),
  #program .program-card:last-child {
    flex: 0 0 calc(100vw - 60px) !important;
    max-width: 520px !important;
  }
}

/* ===== [GUIDE] ===== */
/* Guide content: consistent density across all tabs. */
.guide-panel {
  padding: 44px !important;
}
.guide-panel .guide-copy,
.guide-panel .shared-program-section {
  max-width: 1440px !important;
  margin: 0 auto !important;
}
.guide-tab {
  min-height: 108px !important;
  padding: 20px 24px !important;
  font-size: 18px !important;
  line-height: 1.35 !important;
}
.guide-tab:before,
.guide-tab:after {
  display: none !important;
  content: none !important;
}
/* ===== [PROGRAM] ===== */
.shared-program-section--stage {
  grid-template-columns: minmax(300px, 0.8fr) minmax(520px, 1.2fr) !important;
  gap: 42px !important;
  padding: 0 !important;
}
.shared-program-section--stage header {
  padding: 8px 0 !important;
}
.shared-program-section--stage header p {
  max-width: 460px !important;
}
.shared-program-section--stage .shared-program-gallery {
  min-height: 360px !important;
}
.shared-program-section--stage .shared-program-gallery figure {
  min-height: 360px !important;
}

/* ===== [GUIDE] ===== */
/* Ticket comparison matrix — matching rows make differences scannable. */
.ticket-guide > p {
  margin-bottom: 26px !important;
}
/* ===== [PROGRAM] ===== */
.ticket-compare {
  display: grid;
  grid-template-columns: 180px repeat(2, minmax(0, 1fr));
  border: 2px solid var(--ink);
  box-shadow: 8px 8px 0 var(--purple);
}
.ticket-compare > div {
  display: flex;
  min-height: 64px;
  align-items: center;
  padding: 15px 22px;
  border-right: 1px solid #aaa;
  border-bottom: 1px solid #aaa;
  background: #fff;
  font-size: 16px;
  line-height: 1.45;
}
.ticket-compare > div:nth-child(3n) {
  border-right: 0;
}
.ticket-compare > div:nth-last-child(-n + 3) {
  border-bottom: 0;
}
.ticket-compare .ticket-compare-head {
  min-height: 132px;
  display: block;
  padding: 25px 24px;
  background: #f7f4ef;
}
.ticket-compare .ticket-compare-head strong {
  display: block;
  margin: 0 0 10px;
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif;
  font-size: 32px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.035em;
}
.ticket-compare .ticket-compare-head p {
  max-width: 360px;
  margin: 0;
  color: #666;
  font-size: 16px;
  line-height: 1.5;
}
.ticket-compare .ticket-compare-head.is-all {
  background: var(--purple);
  color: #fff;
}
.ticket-compare .ticket-compare-head.is-all p {
  color: #fff;
}
.ticket-compare .ticket-compare-label {
  background: #ebe7e1;
  color: #57545b;
  font-size: 16px;
  font-weight: 700;
}
.ticket-compare .ticket-compare-head.ticket-compare-label {
  display: flex;
  color: #777;
  font-weight: 400;
}
.ticket-check,
.ticket-muted {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.ticket-check:before {
  display: grid;
  width: 23px;
  height: 23px;
  place-items: center;
  border-radius: 50%;
  background: var(--mint);
  color: var(--ink);
  content: "✓";
  font-size: 14px;
  font-weight: 900;
}
.ticket-muted {
  color: #888;
}
.ticket-price-cell {
  display: block !important;
  min-height: 126px !important;
}
.ticket-price-cell b {
  display: block;
  margin: 0 0 3px;
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif;
  font-size: 23px;
  font-weight: 400;
  line-height: 1.25;
}
.ticket-price-cell b:not(:first-child) {
  margin-top: 14px;
}
.ticket-price-cell small {
  display: block;
  color: #747178;
  font-size: 15px;
  line-height: 1.4;
}

/* ===== [GUIDE] ===== */
/* Notice information uses four compact, equally weighted groups. */
.guide-view-notice .notice-guide > h3 {
  margin: 0 0 26px !important;
  font-size: 30px !important;
}
.guide-view-notice .notice-groups {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
  margin: 0 !important;
}
.guide-view-notice .notice-group {
  min-height: 0 !important;
  padding: 24px 26px 24px 76px !important;
}
.guide-view-notice .notice-group > b {
  right: 18px !important;
  bottom: 12px !important;
  font-size: 54px !important;
}
.notice-icon {
  top: 23px !important;
  left: 20px !important;
  width: 40px !important;
  height: 40px !important;
}
.notice-icon svg {
  width: 21px !important;
  height: 21px !important;
}
.guide-view-notice .notice-group > strong {
  margin-bottom: 14px !important;
  font-size: 19px !important;
}
.guide-view-notice .notice-group ul {
  font-size: 16px !important;
  line-height: 1.65 !important;
}

/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  .guide-panel {
    padding: 28px 20px !important;
  }
  .guide-tab {
    min-height: 82px !important;
    padding: 14px 16px !important;
    font-size: 16px !important;
  }
  .shared-program-section--stage {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }
  .shared-program-section--stage .shared-program-gallery,
  .shared-program-section--stage .shared-program-gallery figure {
    min-height: 240px !important;
  }
  .ticket-compare {
    grid-template-columns: 112px repeat(2, minmax(0, 1fr));
    overflow-x: auto;
    box-shadow: 5px 5px 0 var(--purple);
  }
  .ticket-compare > div {
    min-width: 0;
    min-height: 58px;
    padding: 12px 10px;
    font-size: 16px;
  }
  .ticket-compare .ticket-compare-head {
    min-height: 118px;
    padding: 18px 12px;
  }
  .ticket-compare .ticket-compare-head strong {
    font-size: 23px;
  }
  .ticket-compare .ticket-compare-head p {
    font-size: 16px;
  }
  .ticket-price-cell b {
    font-size: 18px;
  }
  .ticket-price-cell small {
    font-size: 15px;
  }
  .guide-view-notice .notice-groups {
    grid-template-columns: 1fr !important;
  }
}

/* ===== [GUIDE] ===== */
/* Mobile guide tabs wrap instead of becoming a horizontal carousel. */
@media (max-width: 800px) {
  .guide-tabs-wrap {
    overflow: visible !important;
  }
  .guide-tabs {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    overflow: visible !important;
    scroll-snap-type: none !important;
  }
  .guide-tab {
    width: auto !important;
    min-width: 0 !important;
    flex: none !important;
    border-right: 1px solid #666 !important;
    border-bottom: 1px solid #666 !important;
  }
  .guide-tab:nth-child(2n) {
    border-right: 0 !important;
  }
  .guide-tab:last-child {
    grid-column: 1/-1 !important;
    border-right: 0 !important;
    border-bottom: 0 !important;
  }
  .guide-scroll-next {
    display: none !important;
  }
  .ticket-compare {
    width: 100% !important;
    grid-template-columns: 116px 190px 190px !important;
    overflow-x: auto !important;
    overscroll-behavior-inline: contain !important;
  }
  .ticket-compare .ticket-compare-head strong {
    overflow-wrap: normal !important;
    word-break: keep-all !important;
  }
  .ticket-price-cell b,
  .ticket-price-cell small {
    word-break: keep-all !important;
  }
}

/* GUIDE event reuses the PROGRAM event body and ticket layout; only its heading differs. */
.guide-event-copy .event-list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 22px !important;
  width: 100% !important;
  margin-top: 26px !important;
}
.guide-event-copy .event-list article {
  display: grid !important;
  min-height: 0 !important;
  grid-template-columns: minmax(0, 1fr) 40% !important;
  grid-template-rows: auto auto 1fr auto !important;
  gap: 0 22px !important;
  padding: 28px 0 0 30px !important;
  overflow: visible !important;
}
.guide-event-copy .event-card-media {
  grid-column: 2 !important;
  grid-row: 1/5 !important;
  height: 100% !important;
  min-height: 300px !important;
  margin: 0 !important;
}
.guide-event-copy .event-list article > small {
  margin: 0 22px 8px 0 !important;
}
.guide-event-copy .event-list article > strong {
  margin: 0 22px 10px 0 !important;
  font-size: 20px !important;
}
.guide-event-copy .event-list article > p {
  margin: 0 22px 0 0 !important;
  font-size: 16px !important;
  line-height: 1.62 !important;
}
.guide-event-copy .event-list article > em {
  width: auto !important;
  margin: 20px 0 0 -30px !important;
  padding: 15px 18px 17px 30px !important;
}
.guide-event-copy .reward-label {
  margin-bottom: 9px !important;
}
.guide-event-copy .reward-chips {
  gap: 5px !important;
}
.guide-event-copy .reward-chips > span {
  min-height: 26px !important;
  padding: 4px 8px !important;
  font-size: 12px !important;
}
@media (max-width: 980px) {
  .guide-event-copy .event-list {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 800px) {
  .guide-event-copy .event-list article {
    display: flex !important;
    padding: 0 0 20px !important;
  }
  .guide-event-copy .event-card-media {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16/9 !important;
  }
  .guide-event-copy .event-list article > small,
  .guide-event-copy .event-list article > strong,
  .guide-event-copy .event-list article > p {
    margin-right: 20px !important;
    margin-left: 20px !important;
  }
  .guide-event-copy .event-list article > em {
    margin: 18px 0 0 !important;
    padding: 15px 20px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Program cards keep title and supporting copy as one typographic block. */
.program-card-copy {
  position: absolute;
  right: 24px;
  bottom: 22px;
  left: 24px;
  z-index: 2;
}
.program-card .program-card-copy h3 {
  position: static !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: clamp(22px, 2vw, 30px) !important;
  line-height: 1.2 !important;
}
.program-card .program-card-copy .program-summary {
  position: static !important;
  margin: 14px 0 0 !important;
  color: #fff !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  white-space: normal !important;
  opacity: 1 !important;
}

/* ===== [HEADER] ===== */
/* Primary navigation is body-sized UI text, never caption-sized. */
.topbar nav,
.topbar .ticket-link {
  font-size: 16px !important;
}

/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  .cover-logo {
    width: calc(100% - 32px) !important;
    max-width: 600px !important;
  }
  .cover-actions {
    right: auto !important;
    left: 50% !important;
    width: min(calc(100vw - 64px), 340px) !important;
    max-width: 340px !important;
    transform: translateX(-50%) !important;
  }
  .cover-actions a {
    width: 100% !important;
    min-width: 0 !important;
  }
  .program-card-copy {
    right: 20px;
    bottom: 18px;
    left: 20px;
  }
  .program-card .program-card-copy h3 {
    font-size: 24px !important;
  }
  .program-card .program-card-copy .program-summary {
    margin-top: 12px !important;
    font-size: 16px !important;
    line-height: 1.55 !important;
  }
  .topbar nav,
  .topbar .ticket-link {
    font-size: 16px !important;
  }
}

/* ===== [FOOTER] ===== */
/* Final alignment: organizer marks share one optical baseline, not merely one CSS height. */
.footer-organizer-logos {
  display: grid !important;
  grid-template-columns: 236px 236px !important;
  gap: 28px !important;
  align-items: center !important;
  height: 59px !important;
  margin-top: 12px !important;
}
.footer-organizer-logos img {
  width: 236px !important;
  height: 59px !important;
  object-fit: contain !important;
  object-position: center !important;
}
.footer-logo-kidari {
  transform: translateY(1px) scale(0.96) !important;
  transform-origin: center !important;
}
.footer-logo-lezhin {
  transform: none !important;
}

/* ===== [PROGRAM] ===== */
/* The approved detail heading has no decorative rule. */
.program-dialog h3 {
  margin-bottom: 30px !important;
  padding: 0 72px 0 0 !important;
  border: 0 !important;
}

/* ===== [FOOTER] ===== */
@media (max-width: 800px) {
  .footer-organizer-logos {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    width: min(100%, 420px) !important;
    height: 48px !important;
    gap: 18px !important;
  }
  .footer-organizer-logos img {
    width: 100% !important;
    height: 48px !important;
  }
  .program-dialog h3 {
    padding-right: 54px !important;
  }
}

/* ===== [HEADER] ===== */
/* Header: one spacing grid, restrained corners, readable navigation. */
.topbar {
  right: 18px !important;
  left: 18px !important;
  gap: 18px !important;
  padding: 11px 14px !important;
  border-radius: 12px !important;
}
.topbar .logo {
  flex: 0 0 132px !important;
  width: 132px !important;
  height: 38px !important;
  margin: 0 !important;
}
.topbar nav {
  min-width: 0 !important;
  max-width: none !important;
  justify-content: center !important;
  gap: clamp(12px, 1.35vw, 22px) !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 14px !important;
  letter-spacing: 0.035em !important;
}
.topbar nav a {
  min-height: 38px !important;
  align-items: center !important;
  padding: 0 !important;
}
.topbar .ticket-link {
  margin: 0 !important;
  padding: 11px 16px !important;
  border-radius: 9px !important;
  font-size: 14px !important;
}
@media (max-width: 1100px) {
  .topbar {
    gap: 12px !important;
  }
  .topbar nav {
    justify-content: flex-start !important;
    gap: 14px !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
  }
  .topbar nav::-webkit-scrollbar {
    display: none !important;
  }
}
@media (max-width: 800px) {
  .topbar {
    top: 10px !important;
    right: 10px !important;
    left: 10px !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 8px 12px !important;
    padding: 10px 12px !important;
    border-radius: 12px !important;
  }
  .topbar .logo {
    width: 118px !important;
    height: 36px !important;
  }
  .topbar .ticket-link {
    padding: 10px 13px !important;
    border-radius: 8px !important;
    font-size: 13px !important;
  }
  .topbar nav {
    width: 100% !important;
    gap: 8px !important;
    padding: 8px 0 0 !important;
    border: 0 !important;
    border-top: 1px solid rgba(21, 21, 26, 0.22) !important;
    border-radius: 0 !important;
    background: transparent !important;
    font-size: 14px !important;
    letter-spacing: 0.02em !important;
  }
  .topbar nav a {
    flex: 0 0 auto !important;
    min-height: 34px !important;
    padding: 0 8px !important;
    border-radius: 6px !important;
  }
}

/* ===== [ABOUT] ===== */
/* ABOUT restoration: preserve the original composition exactly; no redesign. */
#about,
.intro-inner,
#about .about-copy {
  background: #fff !important;
  color: var(--ink) !important;
}
#about .about-copy {
  position: relative !important;
  display: flex !important;
  min-height: 680px !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  padding: clamp(110px, 9vw, 140px) 24px !important;
  overflow: hidden !important;
  text-align: center !important;
  isolation: isolate !important;
}
#about .about-copy > div:first-child {
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}
#about .about-copy:before {
  position: absolute !important;
  z-index: 0 !important;
  top: 50% !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  display: block !important;
  color: #f1f1f3 !important;
  content: "WEFESTA" !important;
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-size: clamp(138px, 20vw, 300px) !important;
  font-weight: 900 !important;
  line-height: 0.75 !important;
  letter-spacing: -0.075em !important;
  white-space: nowrap !important;
  transform: translate(-50%, -50%) !important;
  pointer-events: none !important;
}
#about .about-copy:after {
  position: absolute !important;
  z-index: 1 !important;
  inset: 0 !important;
  display: block !important;
  height: auto !important;
  background-image: radial-gradient(#d7d5da 1px, transparent 1px) !important;
  background-size: 12px 12px !important;
  content: "" !important;
  clip-path: polygon(0 72%, 100% 48%, 100% 100%, 0 100%) !important;
  opacity: 1 !important;
  pointer-events: none !important;
}
#about .about-copy .about-script {
  position: absolute !important;
  z-index: -1 !important;
  top: -58px !important;
  left: 55% !important;
  display: block !important;
  margin: 0 !important;
  color: #e5e4df !important;
  font-family: "Black Signature", "Brush Script MT", cursive !important;
  font-size: clamp(54px, 5vw, 76px) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  transform: translateX(-50%) rotate(-4deg) !important;
}
#about .about-copy h1 {
  position: relative !important;
  z-index: 1 !important;
  width: auto !important;
  max-width: 980px !important;
  margin: 0 0 22px !important;
  color: var(--ink) !important;
  font-size: clamp(48px, 5.4vw, 72px) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.055em !important;
  white-space: normal !important;
}
#about .about-copy h1:before {
  display: none !important;
  content: none !important;
}
#about .about-copy h1 em {
  color: #6464e6 !important;
  font-style: normal !important;
}
#about .about-copy h1 em:after {
  height: 7px !important;
  background: #6464e6 !important;
  opacity: 1 !important;
}
#about .about-copy > div:first-child > p {
  margin: 8px 0 0 !important;
  padding: 10px 18px !important;
  background: var(--ink) !important;
  color: #fff !important;
  font-size: clamp(17px, 1.35vw, 21px) !important;
  font-weight: 800 !important;
  line-height: 1.5 !important;
  transform: rotate(-1deg) !important;
}
#about .intro-facts {
  position: relative !important;
  z-index: 2 !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  display: flex !important;
  width: auto !important;
  max-width: none !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 44px !important;
  margin: 58px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  color: var(--ink) !important;
  text-align: center !important;
}
#about .intro-facts div {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  white-space: nowrap !important;
}
#about .intro-facts div + div:before {
  display: block !important;
  width: 1px !important;
  height: 26px !important;
  margin-right: 34px !important;
  background: var(--ink) !important;
  content: "" !important;
}
#about .intro-facts svg {
  width: 22px !important;
  height: 22px !important;
  color: var(--ink) !important;
}
#about .intro-facts strong {
  font-size: 16px !important;
  font-weight: 800 !important;
}
@media (max-width: 800px) {
  #about .about-copy {
    min-height: 570px !important;
    padding: 112px 22px 88px !important;
  }
  #about .about-copy:before {
    font-size: 36vw !important;
  }
  #about .about-copy:after {
    background-size: 10px 10px !important;
    clip-path: polygon(0 78%, 100% 62%, 100% 100%, 0 100%) !important;
  }
  #about .about-copy .about-script {
    top: -42px !important;
    left: 54% !important;
    font-size: clamp(38px, 10vw, 52px) !important;
  }
  #about .about-copy h1 {
    font-size: clamp(34px, 9vw, 43px) !important;
    line-height: 1.2 !important;
  }
  #about .about-copy > div:first-child > p {
    padding: 9px 12px !important;
    font-size: 16px !important;
  }
  #about .intro-facts {
    flex-direction: column !important;
    gap: 12px !important;
    margin-top: 44px !important;
  }
  #about .intro-facts div {
    white-space: normal !important;
  }
  #about .intro-facts div + div:before {
    display: none !important;
  }
}

/* ===== [GUIDE] ===== */
/* Readability baseline: body copy is never smaller than 16px. */
.guide-copy,
.guide-copy > p,
.guide-copy li,
.session-notes,
.session-schedule th,
.session-schedule td,
.ticket-type > p,
.ticket-type > ul,
.guide-merch-copy p,
.entry-guide-details p,
.guide-view-notice .notice-group ul,
.program-dialog .program-details-body,
.program-dialog .program-details-body > p,
.event-list p,
.faq-list .faq-answer,
.platform-grid span,
.map-legend strong {
  font-size: 16px !important;
}
.guide-copy,
.guide-copy > p,
.guide-copy li,
.entry-guide-details p,
.program-dialog .program-details-body,
.program-dialog .program-details-body > p,
.faq-list .faq-answer {
  line-height: 1.72 !important;
}
@media (max-width: 800px) {
  .guide-copy,
  .guide-copy > p,
  .guide-copy li,
  .session-notes,
  .session-schedule th,
  .session-schedule td,
  .ticket-type > p,
  .ticket-type > ul,
  .guide-merch-copy p,
  .entry-guide-details p,
  .guide-view-notice .notice-group ul,
  .program-dialog .program-details-body,
  .program-dialog .program-details-body > p,
  .event-list p,
  .faq-list .faq-answer,
  .platform-grid span,
  .map-legend strong {
    font-size: 16px !important;
  }
}

/* ===== [FAQ] ===== */
/* Final corrections: keep the original two-column FAQ card system. */
.faq-character,
.faq-accent {
  display: none !important;
}
.faq-list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 14px !important;
  margin: 64px auto 0 !important;
  border: 0 !important;
}
.faq-list details {
  min-width: 0;
  border: 1px solid #4d4d56 !important;
  background: #1b1b20 !important;
  box-shadow: none !important;
}
.faq-list details[open] {
  border-color: #6664e8 !important;
  border-left-width: 6px !important;
}
.faq-list summary {
  display: grid !important;
  grid-template-columns: 62px minmax(0, 1fr) 42px !important;
  min-height: 126px !important;
  align-items: center !important;
  padding: 24px 28px !important;
  font-size: clamp(18px, 1.45vw, 23px) !important;
  line-height: 1.35 !important;
}
.faq-list summary > span {
  display: grid !important;
  width: 46px !important;
  height: 46px !important;
  place-items: center !important;
  padding: 0 !important;
  border: 1px solid #777 !important;
  border-radius: 50% !important;
  background: transparent !important;
  color: #aaa !important;
  font-size: 12px !important;
  font-weight: 900 !important;
}
.faq-list details[open] summary > span {
  border-color: var(--yellow) !important;
  background: var(--yellow) !important;
  color: var(--ink) !important;
}
.faq-list .faq-answer {
  max-width: none !important;
  margin: 0 !important;
  padding: 0 54px 34px 90px !important;
  color: #aaa !important;
  font-size: 16px !important;
  line-height: 1.75 !important;
}
.faq-list .faq-answer strong {
  color: #fff !important;
}

/* ===== [MAP] ===== */
/* Both first-row legend items start from the same rule in two-column layouts. */
.map-legend li:nth-child(2) {
  border-top: 1px solid rgba(21, 21, 26, 0.28);
}
@media (min-width: 1101px) and (max-width: 1499px) {
  .map-legend li:nth-child(2) {
    border-top: 0;
  }
}

/* ===== [PROGRAM] ===== */
/* Event cards: one clear composition, without nested framed boxes. */
.event-list article {
  min-height: 430px !important;
  grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.95fr) !important;
  grid-template-rows: auto auto 1fr auto !important;
  gap: 0 44px !important;
  padding: 48px 0 0 48px !important;
}
.event-card-media {
  grid-column: 2 !important;
  grid-row: 1/5 !important;
  width: 100% !important;
  height: 100% !important;
  align-self: stretch !important;
  border: 0 !important;
  background: rgba(255, 255, 255, 0.16) !important;
  box-shadow: none !important;
}
.event-card-media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}
.event-list article > small,
.event-list article > strong,
.event-list article > p {
  padding-right: 0 !important;
}
.event-list article > em {
  align-self: end !important;
  margin: 28px 0 0 -48px !important;
  padding: 18px 28px 20px 48px !important;
  border: 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.42) !important;
  background: rgba(0, 0, 0, 0.12) !important;
}
/* ===== [GUIDE] ===== */
.reward-label {
  margin-bottom: 13px !important;
}
.reward-chips > span {
  border-radius: 3px !important;
  background: rgba(255, 255, 255, 0.94) !important;
}

/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  .faq-list {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    margin-top: 40px !important;
  }
  .faq-list summary {
    grid-template-columns: 50px minmax(0, 1fr) 36px !important;
    min-height: 104px !important;
    padding: 20px !important;
    font-size: 17px !important;
  }
  .faq-list summary > span {
    width: 38px !important;
    height: 38px !important;
  }
  .faq-list .faq-answer {
    padding: 0 22px 28px 70px !important;
    font-size: 15px !important;
  }
  .map-legend li:nth-child(2) {
    border-top: 0;
  }
  .event-list article {
    display: flex !important;
    min-height: 0 !important;
    padding: 0 !important;
  }
  .event-card-media {
    order: -1 !important;
    height: auto !important;
    aspect-ratio: 16/10 !important;
    margin: 0 0 24px !important;
  }
  .event-list article > small,
  .event-list article > strong,
  .event-list article > p {
    margin-right: 22px !important;
    margin-left: 22px !important;
  }
  .event-list article > em {
    width: 100%;
    margin: 24px 0 0 !important;
    padding: 18px 22px 22px !important;
  }
}
/* ===== [MAP] ===== */
@media (min-width: 1101px) and (max-width: 1499px) {
  .festa-map-layout {
    grid-template-columns: minmax(0, 1.8fr) minmax(280px, 0.72fr) !important;
    gap: 28px !important;
  }
  .map-legend {
    grid-template-columns: 1fr !important;
  }
  .map-legend li {
    min-height: 0 !important;
  }
}
/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  .topbar {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 8px 12px !important;
    padding: 9px 12px 10px !important;
    border-radius: 22px !important;
  }
  .topbar .logo {
    grid-column: 1;
    grid-row: 1;
    width: 110px !important;
    height: 34px !important;
  }
  .topbar .ticket-link {
    grid-column: 2;
    grid-row: 1;
    padding: 9px 12px !important;
    font-size: 11px !important;
  }
  .topbar nav {
    grid-column: 1/-1;
    grid-row: 2;
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 20px !important;
    padding: 7px 2px 2px !important;
    overflow-x: auto !important;
    font-size: 11px !important;
    scrollbar-width: none !important;
  }
  .topbar nav::-webkit-scrollbar {
    display: none;
  }
  .about-copy {
    min-height: 500px !important;
    padding: 90px 20px 140px !important;
  }
  .about-copy h1 {
    font-size: 40px !important;
  }
  .about-copy h1:before {
    font-size: 42px;
  }
  .about-copy:before {
    bottom: 10px !important;
    font-size: 38vw !important;
  }
  .intro-facts {
    bottom: -118px !important;
    width: 100% !important;
    flex-direction: column !important;
    gap: 10px !important;
  }
  .intro-facts div + div:before {
    display: none;
  }
  .intro-facts strong {
    font-size: 12px !important;
  }
  .festa-map {
    padding-bottom: 70px !important;
  }
  .map-mascot {
    display: none !important;
  }
  .map-legend {
    grid-template-columns: 1fr !important;
  }
  .program-dialog-inner {
    padding: 42px 18px 38px !important;
  }
  .program-dialog h3 {
    font-size: 26px !important;
  }
  .program-modal-gallery {
    grid-template-columns: 1fr;
  }
  .program-dialog[data-program] .program-modal-gallery {
    display: flex;
    overflow-x: auto;
    gap: 8px;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
  }
  .program-dialog[data-program] .program-modal-gallery figure {
    flex: 0 0 88%;
    min-height: 0 !important;
    aspect-ratio: 16/10 !important;
    scroll-snap-align: start;
  }
  .program-dialog[data-program="event"] .program-modal-gallery {
    display: none;
  }
  .event-list article {
    display: flex;
    min-height: 0;
    flex-direction: column;
    padding: 0 0 22px !important;
  }
  .event-card-media {
    order: -1;
    width: 100%;
    height: 180px;
    min-height: 0;
    margin: 0 0 20px;
  }
  .event-list article > small,
  .event-list article > strong,
  .event-list article > p,
  .event-list article > em {
    margin-right: 20px !important;
    margin-left: 20px !important;
  }
  .event-list strong {
    font-size: 21px !important;
  }
  .event-list p {
    font-size: 14px !important;
  }
  .event-list em {
    font-size: 13px !important;
  }
  .program-modal-release {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }
  .guide-view-entry .entry-guide {
    display: block;
  }
  .guide-view-entry .guide-reference-image {
    margin: 20px 0 !important;
  }
  .guide-merch {
    display: block;
  }
  .guide-merch-gallery {
    grid-template-columns: 1fr;
    margin-top: 24px;
  }
  .guide-merch-gallery img {
    height: auto;
    aspect-ratio: 16/10;
  }
  .guide-view-notice .notice-group:nth-child(n) {
    min-height: 0;
    transform: none;
  }
  .guide-view-notice .notice-groups {
    grid-template-columns: 1fr;
  }
  .guide-view-notice .notice-group:nth-child(n) {
    grid-column: auto;
  }
  .program-grid {
    display: flex !important;
    grid-template-columns: none !important;
    width: 100vw !important;
  }
  .program-card,
  .program-card:nth-child(4),
  .program-card:last-child {
    flex: 0 0 82vw !important;
    min-height: 0 !important;
    aspect-ratio: 16/10 !important;
  }
  .event-list {
    grid-template-columns: 1fr;
  }
  .ticket-types,
  .notice-groups {
    grid-template-columns: 1fr;
  }
  .ticket-type {
    min-height: 0;
    padding: 24px;
    box-shadow: 6px 6px 0 var(--purple);
  }
  .ticket-type > p,
  .ticket-type > ul {
    min-height: 0;
  }
  .ticket-price {
    margin: 20px -24px -24px;
  }
  .session-table tbody {
    grid-template-columns: 1fr 1fr;
  }
  .session-table tr:nth-child(2) {
    border-right: 0;
  }
  .session-table tr:nth-child(-n + 2) {
    border-bottom: 1px solid var(--ink);
  }
  .platforms {
    padding-top: 74px !important;
    padding-bottom: 74px !important;
  }
  .platforms-head {
    margin-bottom: 38px !important;
  }
  .platform-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 18px 16px !important;
    padding: 0 !important;
    background: transparent !important;
  }
  .platform-grid > a,
  .platform-grid > .platform-card {
    min-height: 142px !important;
    gap: 13px !important;
    padding: 22px 12px !important;
    border: 0 !important;
    background: transparent !important;
  }
  .platform-grid > *:last-child {
    grid-column: 1/-1 !important;
    min-height: 142px !important;
  }
  .platform-grid .platform-logo-box {
    height: 58px !important;
  }
  .platform-grid span {
    font-size: 14px !important;
    line-height: 1.2 !important;
  }
  .platform-grid > *:nth-child(1) img {
    max-width: 126px !important;
    max-height: 42px !important;
  }
  .platform-grid > *:nth-child(2) img {
    max-width: 128px !important;
    max-height: 38px !important;
  }
  .platform-grid > *:nth-child(3) img {
    max-width: 120px !important;
    max-height: 52px !important;
  }
  .platform-grid > *:nth-child(4) img {
    max-width: 116px !important;
    max-height: 44px !important;
  }
  .platform-grid > *:nth-child(5) img {
    max-width: 114px !important;
    max-height: 38px !important;
  }
  .platform-grid > *:nth-child(6) img {
    max-width: 118px !important;
    max-height: 40px !important;
  }
  .platform-grid > *:nth-child(7) img {
    max-width: 112px !important;
    max-height: 46px !important;
  }
  .timetable-release strong {
    padding: 18px;
    font-size: 20px;
  }
  .full-footer {
    overflow: hidden !important;
  }
  .full-footer-inner {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 28px !important;
    padding-right: 24px !important;
    padding-left: 24px !important;
  }
  .full-footer-inner > * {
    min-width: 0 !important;
  }
  .full-footer-brand,
  .full-footer-info,
  .full-footer-inner > small {
    grid-column: 1 !important;
  }
  .full-footer-inner > small {
    max-width: 100% !important;
    padding-right: 88px !important;
    overflow-wrap: anywhere !important;
    white-space: normal !important;
  }
  .full-footer-top {
    top: auto !important;
    right: 18px !important;
    bottom: 20px !important;
    width: 70px !important;
    height: 70px !important;
  }
  .footer-organizer-logos {
    gap: 12px;
  }
  .footer-logo-kidari,
  .footer-logo-lezhin {
    width: auto !important;
    height: 24px !important;
  }
  .faq-entry {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 34px 0;
  }
  .faq-answer {
    padding-left: 64px;
    font-size: 15px;
    line-height: 1.75;
  }
}
/* ===== [MAP] ===== */
@media (max-width: 650px) {
  .map-legend {
    grid-template-columns: 1fr !important;
  }
  .map-legend li {
    min-height: 0 !important;
  }
}

/* ===== [COMMON] ===== */
/* Shared editorial type scale: section lead, content heading, body and annotation. */
:root {
  --type-lead: clamp(17px, 1.45vw, 21px);
  --type-body: 16px;
  --type-small: 13px;
  --leading-lead: 1.62;
  --leading-body: 1.72;
}
/* ===== [PROGRAM] ===== */
.program-head > p,
.festa-map-head > p,
.guide-head > p,
.platforms-head > p {
  font-size: var(--type-lead) !important;
  line-height: var(--leading-lead) !important;
  letter-spacing: -0.025em !important;
}
.program-head > p strong,
.guide-head > p strong,
.platforms-head > p strong {
  font-size: 1.08em;
  font-weight: 900;
}
/* ===== [GUIDE] ===== */
.guide-copy,
.guide-copy > p,
.entry-guide-details p,
.faq-answer {
  font-size: var(--type-body) !important;
  line-height: var(--leading-body) !important;
}
.guide-tab,
.map-legend strong,
.platform-grid span {
  line-height: 1.4 !important;
}

/* Session table keeps the source structure; color follows the site system. */
.session-schedule thead th {
  background: var(--ink) !important;
  color: #fff !important;
}
.session-schedule thead th:nth-child(4) {
  background: var(--purple) !important;
  color: #fff !important;
}
.session-schedule thead th:nth-child(5) {
  background: var(--mint) !important;
  color: var(--ink) !important;
}
.session-schedule thead th:nth-child(6) {
  background: var(--pink) !important;
  color: var(--ink) !important;
}
.session-schedule .daypart {
  background: var(--ink) !important;
  color: #fff !important;
  text-align: center !important;
}

@media (max-width: 800px) {
  :root {
    --type-lead: 16px;
    --type-body: 15px;
    --type-small: 12px;
  }
  .program-head > p,
  .festa-map-head > p,
  .guide-head > p,
  .platforms-head > p {
    line-height: 1.6 !important;
  }
  .guide-view-notice .notice-group {
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 10px 14px;
    padding: 24px 0;
  }
  .guide-view-notice .notice-group .notice-icon {
    grid-column: 1;
    grid-row: 1;
    width: 44px;
    height: 44px;
  }
  .guide-view-notice .notice-group > b {
    display: none;
  }
  .guide-view-notice .notice-group > strong {
    grid-column: 2;
    grid-row: 1;
    margin: 3px 0 0;
    font-size: 20px;
  }
  .guide-view-notice .notice-group ul {
    grid-column: 2;
    grid-row: 2;
    margin-top: 4px;
    font-size: 14px;
  }
  .faq-list summary {
    grid-template-columns: 44px minmax(0, 1fr) 42px !important;
    font-size: 17px !important;
  }
  .faq-list .faq-answer {
    padding: 0 10px 28px 44px;
    font-size: 15px;
  }
  .faq-answer table {
    font-size: 13px;
  }
}

/* ===== [COMMON] ===== */
/* Unified type system — roles, not individual screens, own the sizes. */
:root {
  --type-display: clamp(48px, 5.2vw, 72px);
  --type-section: clamp(40px, 3.8vw, 54px);
  --type-content: clamp(24px, 2vw, 28px);
  --type-subhead: 20px;
  --type-body: 16px;
  --type-meta: 14px;
  --type-caption: 12px;
  --leading-heading: 1.18;
  --leading-body: 1.72;
  --leading-meta: 1.5;
}
/* ===== [PROGRAM] ===== */
.about-copy h1,
.program-title-kicker,
.program-title-main,
.festa-map h2,
.guide h2,
.location h2,
.platforms h2,
.faq h2 {
  font-size: var(--type-section) !important;
  line-height: var(--leading-heading) !important;
}
/* ===== [GUIDE] ===== */
.guide-copy h3,
.guide-merch-copy h3,
.entry-guide-head h3,
.notice-guide > h3,
.program-dialog h3 {
  font-size: var(--type-content) !important;
  line-height: var(--leading-heading) !important;
}
/* ===== [PROGRAM] ===== */
.ticket-type > strong,
.entry-guide-details strong,
.notice-group > strong,
.faq-list summary,
.event-list > article > strong {
  font-size: var(--type-subhead) !important;
  line-height: 1.4 !important;
}
/* ===== [GUIDE] ===== */
.guide-copy p,
.guide-copy li,
.ticket-type p,
.ticket-type li,
.session-notes,
.session-schedule th,
.session-schedule td,
.entry-guide-details p,
.notice-group li,
.program-details-body,
.program-details-body p,
.event-list p,
.faq-answer,
.platform-grid span,
.map-legend strong {
  font-size: var(--type-body) !important;
  line-height: var(--leading-body) !important;
}
/* ===== [PROGRAM] ===== */
.program-head > p,
.festa-map-head > p,
.guide-head > p,
.platforms-head > p {
  font-size: var(--type-lead) !important;
  line-height: var(--leading-lead) !important;
}
.ticket-price span,
.program-modal-release span,
.map-legend em,
.event-list small,
.reward-label {
  font-size: var(--type-meta) !important;
  line-height: var(--leading-meta) !important;
}
/* ===== [GUIDE] ===== */
.entry-guide-details b,
.entry-guide-details em,
.reward-chips > span,
.faq-list summary > span {
  font-size: var(--type-caption) !important;
}
/* ===== [COMMON] ===== */
@media (max-width: 800px) {
  :root {
    --type-section: clamp(34px, 9vw, 43px);
    --type-content: 24px;
    --type-subhead: 18px;
    --type-body: 16px;
    --type-meta: 14px;
    --type-caption: 12px;
  }
}

/* ===== [ABOUT] ===== */
/* ABOUT: preserve the restored layout; change only its section color system. */
#about,
#about .intro-inner,
#about .about-copy {
  background: #6260e6 !important;
  color: #fff !important;
}
#about .about-copy:before {
  color: rgba(255, 255, 255, 0.13) !important;
}
#about .about-copy:after {
  background-image: radial-gradient(
    rgba(255, 255, 255, 0.62) 1.35px,
    transparent 1.35px
  ) !important;
}
#about .about-copy .about-script {
  color: rgba(255, 255, 255, 0.88) !important;
}
#about .about-copy h1 {
  color: #fff !important;
}
#about .about-copy h1 em {
  color: #ffe867 !important;
}
#about .about-copy h1 em:after {
  background: #ffe867 !important;
}
#about .about-copy > div:first-child > p {
  background: #15151a !important;
  color: #fff !important;
}
#about .intro-facts,
#about .intro-facts svg,
#about .intro-facts strong {
  color: #fff !important;
}
#about .intro-facts div + div:before {
  background: rgba(255, 255, 255, 0.58) !important;
}
@media (min-width: 801px) {
  #about .about-copy {
    min-height: 540px !important;
    padding: 82px 24px 68px !important;
  }
  #about .about-copy h1 {
    font-size: clamp(46px, 4.35vw, 64px) !important;
  }
  #about .about-copy .about-script {
    top: -48px !important;
    font-size: clamp(48px, 4.4vw, 66px) !important;
  }
  #about .about-copy > div:first-child > p {
    font-size: clamp(16px, 1.2vw, 19px) !important;
  }
  #about .intro-facts {
    margin-top: 42px !important;
  }
}

/* ===== [MAP] ===== */
/* The JS introduces a map column wrapper; that wrapper must own the sticky behavior. */
@media (min-width: 801px) {
  .booth-map-column {
    position: sticky !important;
    top: 110px !important;
    align-self: start !important;
  }
  .booth-map-column .booth-map-wrap {
    position: relative !important;
    top: auto !important;
  }
}
@media (max-width: 800px) {
  .booth-map-column {
    position: relative !important;
    top: auto !important;
  }
}

/* ===== [GUIDE] ===== */
/* GUIDE interaction and spacing are shared across every tab. */
.guide-tab:hover:not([aria-selected="true"]),
.guide-tab:focus-visible:not([aria-selected="true"]) {
  background: #2d2d33 !important;
  color: #fff !important;
}
.guide-tab[aria-selected="true"],
.guide-tab[aria-selected="true"]:hover,
.guide-tab[aria-selected="true"]:focus-visible {
  background: var(--mint) !important;
  color: var(--ink) !important;
}
.guide-panel {
  padding: clamp(46px, 5vw, 72px) !important;
}
.guide-panel > .guide-copy,
.guide-panel > .shared-program-section {
  width: 100%;
  margin: 0 !important;
}
.guide-panel .shared-program-section {
  padding: 0 !important;
}
.guide-copy > h3:first-child,
.entry-guide-head > h3,
.notice-guide > h3,
.shared-program-section header h3 {
  margin-top: 0 !important;
}
@media (max-width: 800px) {
  .guide-panel {
    padding: 30px 20px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Program event detail — ticket-shaped component derived from ticketing references. */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list {
  gap: 24px !important;
  width: min(100%, 1120px) !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article {
  --ticket-color: #ff2026;
  min-height: 340px !important;
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, 0.92fr) !important;
  padding: 38px 0 0 42px !important;
  border: 2px solid #15151a !important;
  background: var(--ticket-color) !important;
  box-shadow: 8px 8px 0 #6260e6 !important;
  overflow: visible !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(2) {
  --ticket-color: #d98bd4;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(3) {
  --ticket-color: #5574f3;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(4) {
  --ticket-color: #45434d;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(5) {
  --ticket-color: #8375eb;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(6) {
  --ticket-color: #ce3034;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(7) {
  --ticket-color: #6474ee;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(8) {
  --ticket-color: #8f435e;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(9) {
  --ticket-color: #55515f;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(10) {
  --ticket-color: #35343b;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:before,
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:after {
  position: absolute;
  z-index: 5;
  top: 50%;
  width: 28px;
  height: 28px;
  border: 2px solid #15151a;
  border-radius: 50%;
  background: #f7f4ef;
  content: "";
  transform: translateY(-50%);
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:before {
  left: -16px;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:after {
  right: -16px;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-card-media {
  position: relative;
  border-left: 2px dashed rgba(255, 255, 255, 0.66) !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-card-media
  img {
  object-fit: cover !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em {
  position: relative;
  margin-top: 24px !important;
  background: rgba(0, 0, 0, 0.16) !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span {
  border: 1px solid rgba(21, 21, 26, 0.2) !important;
  border-radius: 999px !important;
}
@media (max-width: 800px) {
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article {
    display: flex !important;
    padding: 0 0 22px !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-card-media {
    border-bottom: 2px dashed rgba(255, 255, 255, 0.66) !important;
    border-left: 0 !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article:before,
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article:after {
    top: calc(50vw + 2px);
    width: 22px;
    height: 22px;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article:before {
    left: -13px;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article:after {
    right: -13px;
  }
}

/* Exhibition detail: chip-controlled image explorer from the supplied layout. */
.program-dialog[data-program="exhibition"] .program-details-body > p {
  max-width: 960px !important;
  margin-bottom: 28px !important;
  color: #555 !important;
}
.exhibition-explorer {
  margin-top: 28px;
  border-top: 0;
}
.exhibition-chips {
  display: flex;
  gap: 8px;
  padding: 20px 0;
  overflow-x: auto;
  scrollbar-width: thin;
}
.exhibition-chips button {
  flex: 0 0 auto;
  min-height: 42px;
  padding: 9px 15px;
  border: 1px solid #15151a;
  border-radius: 999px;
  background: transparent;
  color: #15151a;
  font: inherit;
  font-size: 14px;
  font-weight: 850;
  cursor: pointer;
}
.exhibition-chips button:hover,
.exhibition-chips button:focus-visible {
  background: #e5e1dc;
  outline: 0;
}
.exhibition-chips button[aria-selected="true"] {
  border-color: #6260e6;
  background: #6260e6;
  color: #fff;
}
.exhibition-view {
  padding-top: 8px;
}
.exhibition-view-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}
.exhibition-view-head span {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 50%;
  background: #ffe867;
  color: #15151a;
  font-size: 12px;
  font-weight: 950;
}
.exhibition-view-head strong {
  font-size: 22px;
}
.exhibition-images {
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-auto-rows: minmax(190px, 260px);
  gap: 10px;
}
.exhibition-images figure {
  margin: 0;
  overflow: hidden;
  background: #ddd;
}
.exhibition-images figure.is-primary {
  grid-row: span 2;
}
.exhibition-images img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.exhibition-images figure:only-child {
  grid-column: 1/-1;
  grid-row: auto;
  min-height: 480px;
}
@media (max-width: 800px) {
  .exhibition-chips {
    margin-right: -18px;
    padding-right: 18px;
  }
  .exhibition-chips button {
    min-height: 40px;
    font-size: 13px;
  }
  .exhibition-images {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }
  .exhibition-images figure,
  .exhibition-images figure.is-primary,
  .exhibition-images figure:only-child {
    flex: 0 0 88%;
    min-height: 0;
    aspect-ratio: 4/3;
    scroll-snap-align: start;
  }
}

/* ===== [ABOUT] ===== */
/* Restore the previously approved compact ABOUT height. */
#about .intro-inner {
  min-height: 0 !important;
}

/* ===== [FAQ] ===== */
/* Restore FAQ as a document-style question/answer list, not accordion cards. */
.faq-list {
  display: block !important;
  margin: 56px auto 0 !important;
  border-top: 2px solid #fff !important;
}
.faq-list details,
.faq-list details[open] {
  display: grid !important;
  grid-template-columns: minmax(300px, 0.82fr) minmax(0, 1.18fr) !important;
  gap: clamp(34px, 5vw, 90px) !important;
  padding: 38px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #4c4c54 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.faq-list summary {
  display: grid !important;
  grid-template-columns: 56px minmax(0, 1fr) !important;
  min-height: 0 !important;
  align-items: start !important;
  padding: 0 !important;
  color: #fff !important;
  font-size: clamp(20px, 1.8vw, 27px) !important;
  cursor: default !important;
  list-style: none !important;
}
.faq-list summary::-webkit-details-marker {
  display: none !important;
}
.faq-list summary > span,
.faq-list details[open] summary > span {
  display: block !important;
  width: auto !important;
  height: auto !important;
  padding: 5px 0 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--yellow) !important;
  font-size: 13px !important;
}
.faq-list .faq-toggle {
  display: none !important;
}
.faq-list .faq-answer {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #aaa !important;
  font-size: 16px !important;
  line-height: 1.75 !important;
}
.faq-list .faq-answer p:first-child {
  margin-top: 0 !important;
}
@media (max-width: 800px) {
  .faq-list details,
  .faq-list details[open] {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    padding: 28px 0 !important;
  }
  .faq-list summary {
    grid-template-columns: 44px minmax(0, 1fr) !important;
    font-size: 19px !important;
  }
  .faq-list .faq-answer {
    padding-left: 44px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Detail title follows the same full content grid as body and media. */
.program-dialog h3 {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
  margin: 0 0 34px !important;
  padding: 0 72px 0 0 !important;
  border-bottom: 0 !important;
}
.program-dialog-close,
.program-dialog-close:hover,
.program-dialog-close:active {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: 0 !important;
}
.program-dialog-close:focus-visible {
  outline: 2px solid #15151a !important;
  outline-offset: 4px !important;
}
.program-dialog,
.program-dialog:focus,
.program-dialog:focus-visible {
  outline: 0 !important;
}
/* ===== [COMMON] ===== */
body:has(dialog[open]) {
  overflow: hidden !important;
}

/* ===== [PROGRAM] ===== */
/* Final compact ticket grid: multiple events remain visible at once. */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 22px !important;
  width: 100% !important;
  margin-top: 26px !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article {
  display: grid !important;
  min-height: 0 !important;
  grid-template-columns: minmax(0, 1fr) 40% !important;
  grid-template-rows: auto auto 1fr auto !important;
  gap: 0 22px !important;
  padding: 28px 0 0 30px !important;
  overflow: visible !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-card-media {
  grid-column: 2 !important;
  grid-row: 1/5 !important;
  height: 100% !important;
  min-height: 300px !important;
  margin: 0 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > small {
  margin: 0 22px 8px 0 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong {
  margin: 0 22px 10px 0 !important;
  font-size: 20px !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p {
  margin: 0 22px 0 0 !important;
  font-size: 15px !important;
  line-height: 1.62 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em {
  width: auto !important;
  margin: 20px 0 0 -30px !important;
  padding: 15px 18px 17px 30px !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label {
  margin-bottom: 9px !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips {
  gap: 5px !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span {
  min-height: 26px !important;
  padding: 4px 8px !important;
  font-size: 11px !important;
}
@media (max-width: 980px) {
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 800px) {
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article {
    display: flex !important;
    padding: 0 0 20px !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-card-media {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16/9 !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > small,
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > strong,
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > p {
    margin-right: 20px !important;
    margin-left: 20px !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > em {
    margin: 18px 0 0 !important;
    padding: 15px 20px !important;
  }
}

/* One reusable light content system for GUIDE and PROGRAM detail. */
.program-dialog {
  width: min(94vw, 1240px) !important;
  border: 0 !important;
  background: #f7f4ef !important;
  color: #15151a !important;
  box-shadow: 12px 12px 0 #6260e6 !important;
  scrollbar-color: #6260e6 #e4e0da !important;
}
.program-dialog::-webkit-scrollbar-track {
  background: #e4e0da !important;
}
.program-dialog::-webkit-scrollbar-thumb {
  border-color: #e4e0da !important;
  background: #6260e6 !important;
}
.program-dialog-inner {
  padding: clamp(34px, 4vw, 64px) !important;
}
.program-dialog-close {
  top: 20px !important;
  right: 24px !important;
  color: #15151a !important;
}
.program-dialog h3 {
  padding-bottom: 22px;
  border-bottom: 2px solid #15151a;
  color: #15151a !important;
}
.program-dialog .program-details-body {
  color: #15151a !important;
}
.program-dialog .program-modal-gallery figure {
  background: #dedbd5 !important;
}
.shared-program-section {
  display: grid;
  grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(28px, 4vw, 64px);
  align-items: start;
  padding: 8px 0 0;
  background: #f7f4ef;
  color: #15151a;
}
.shared-program-section header {
  position: sticky;
  top: 0;
  padding: 8px 0 24px;
}
.shared-program-section header > span {
  display: block;
  margin-bottom: 18px;
  color: #6260e6;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.12em;
}
.shared-program-section header h3 {
  margin: 0 0 20px !important;
  padding: 0 !important;
  border: 0 !important;
  color: #15151a !important;
}
.shared-program-section header p {
  margin: 0;
  color: #555 !important;
  font-size: 16px !important;
  line-height: 1.75 !important;
}
.shared-program-hero,
.shared-program-gallery figure {
  margin: 0;
  border: 1px solid #bbb;
  background: #fff;
  overflow: hidden;
}
.shared-program-hero {
  position: relative;
}
.shared-program-hero img,
.shared-program-gallery img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.shared-program-hero--stage img {
  filter: blur(9px);
  opacity: 0.62;
  transform: scale(1.025);
}
.shared-program-hero figcaption {
  position: absolute;
  inset: 50% auto auto 50%;
  display: flex;
  width: max-content;
  max-width: 80%;
  flex-direction: column;
  gap: 5px;
  padding: 17px 22px;
  background: #15151a;
  color: #fff;
  text-align: center;
  transform: translate(-50%, -50%);
}
.shared-program-hero figcaption b {
  font-size: 20px;
}
.shared-program-hero figcaption span {
  color: #ffe867;
  font-size: 14px;
  font-weight: 900;
}
.shared-program-gallery {
  display: grid;
  grid-template-columns: 1.35fr 0.65fr;
  gap: 10px;
}
.shared-program-gallery figure {
  min-height: 420px;
}
.shared-program-gallery figure:last-child img {
  object-position: center;
}
/* ===== [GUIDE] ===== */
.guide-panel .shared-program-section {
  padding: clamp(32px, 4vw, 60px);
}

/* ===== [PROGRAM] ===== */
/* Ticket cards use content-sized bodies and the same price-row component. */
.ticket-types {
  align-items: stretch;
}
.ticket-type {
  display: grid !important;
  grid-template-rows: auto auto 1fr auto;
  min-height: 0 !important;
  padding: 28px 28px 0 !important;
  overflow: visible !important;
}
.ticket-type > p,
.ticket-type > ul {
  min-height: 0 !important;
}
.ticket-type > ul {
  margin-bottom: 26px !important;
  font-size: 16px !important;
}
.ticket-price {
  align-self: end;
  margin: 0 -28px !important;
}
.ticket-price b,
.ticket-price span {
  display: block;
  padding-right: 28px !important;
  padding-left: 28px !important;
}

@media (max-width: 800px) {
  .shared-program-section {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .shared-program-section header {
    position: static;
    padding-bottom: 0;
  }
  .shared-program-gallery {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }
  .shared-program-gallery figure {
    flex: 0 0 86%;
    min-height: 0;
    aspect-ratio: 4/3;
    scroll-snap-align: start;
  }
  .guide-panel .shared-program-section {
    padding: 28px 20px;
  }
  .ticket-type {
    padding: 24px 24px 0 !important;
  }
  .ticket-price {
    margin: 0 -24px !important;
  }
  .ticket-price b,
  .ticket-price span {
    padding-right: 24px !important;
    padding-left: 24px !important;
  }
}

/* ===== [HEADER] ===== */
/* === FINAL QA OVERRIDES — keep these last === */
.topbar {
  right: 18px !important;
  left: 18px !important;
  gap: 18px !important;
  padding: 11px 14px !important;
  border-radius: 12px !important;
}
.topbar .logo {
  flex: 0 0 132px !important;
  width: 132px !important;
  height: 38px !important;
  margin: 0 !important;
}
.topbar nav {
  min-width: 0 !important;
  max-width: none !important;
  justify-content: center !important;
  gap: clamp(12px, 1.35vw, 22px) !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 16px !important;
  letter-spacing: 0.025em !important;
}
.topbar nav a {
  min-height: 38px !important;
  align-items: center !important;
  padding: 0 !important;
}
.topbar .ticket-link {
  margin: 0 !important;
  padding: 11px 16px !important;
  border-radius: 9px !important;
  font-size: 16px !important;
}
/* ===== [PROGRAM] ===== */
.program-card-copy {
  position: absolute !important;
  right: 24px !important;
  bottom: 22px !important;
  left: 24px !important;
  z-index: 2 !important;
}
.program-card .program-card-copy h3 {
  position: static !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: clamp(22px, 2vw, 30px) !important;
  line-height: 1.2 !important;
}
.program-card .program-card-copy .program-summary {
  position: static !important;
  margin: 14px 0 0 !important;
  color: #fff !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  white-space: normal !important;
  opacity: 1 !important;
}
.program-dialog h3 {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
  margin: 0 0 30px !important;
  padding: 0 72px 0 0 !important;
  border: 0 !important;
  color: #15151a !important;
}
.program-dialog,
.program-dialog:focus,
.program-dialog:focus-visible {
  outline: 0 !important;
}
/* ===== [FOOTER] ===== */
.footer-organizer-logos {
  display: grid !important;
  grid-template-columns: 236px 236px !important;
  gap: 28px !important;
  align-items: center !important;
  height: 59px !important;
  margin-top: 12px !important;
}
.footer-organizer-logos img {
  width: 236px !important;
  height: 59px !important;
  object-fit: contain !important;
  object-position: center !important;
}
.footer-logo-kidari {
  transform: translateY(-1px) scale(0.96) !important;
  transform-origin: center !important;
}
.footer-logo-lezhin {
  transform: none !important;
}
/* ===== [GUIDE] ===== */
.guide-event-copy .event-list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 22px !important;
  width: 100% !important;
  margin-top: 26px !important;
}
.guide-event-copy .event-list article {
  display: grid !important;
  min-height: 0 !important;
  grid-template-columns: minmax(0, 1fr) 40% !important;
  grid-template-rows: auto auto 1fr auto !important;
  gap: 0 22px !important;
  padding: 28px 0 0 30px !important;
  overflow: visible !important;
}
.guide-event-copy .event-card-media {
  grid-column: 2 !important;
  grid-row: 1/5 !important;
  height: 100% !important;
  min-height: 300px !important;
  margin: 0 !important;
}
.guide-event-copy .event-list article > small {
  margin: 0 22px 8px 0 !important;
}
.guide-event-copy .event-list article > strong {
  margin: 0 22px 10px 0 !important;
  font-size: 20px !important;
}
.guide-event-copy .event-list article > p {
  margin: 0 22px 0 0 !important;
  font-size: 16px !important;
  line-height: 1.62 !important;
}
.guide-event-copy .event-list article > em {
  width: auto !important;
  margin: 20px 0 0 -30px !important;
  padding: 15px 18px 17px 30px !important;
}
.guide-event-copy .reward-label {
  margin-bottom: 9px !important;
}
.guide-event-copy .reward-chips {
  gap: 5px !important;
}
.guide-event-copy .reward-chips > span {
  min-height: 26px !important;
  padding: 4px 8px !important;
  font-size: 12px !important;
}
/* ===== [HEADER] ===== */
@media (max-width: 1100px) {
  .topbar {
    gap: 12px !important;
  }
  .topbar nav {
    justify-content: flex-start !important;
    gap: 14px !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
  }
  .topbar nav::-webkit-scrollbar {
    display: none !important;
  }
}
/* ===== [GUIDE] ===== */
@media (max-width: 980px) {
  .guide-event-copy .event-list {
    grid-template-columns: 1fr !important;
  }
}
/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  .topbar {
    top: 10px !important;
    right: 10px !important;
    left: 10px !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 8px 12px !important;
    padding: 10px 12px !important;
    border-radius: 12px !important;
  }
  .topbar .logo {
    width: 118px !important;
    height: 36px !important;
  }
  .topbar .ticket-link {
    padding: 10px 13px !important;
    border-radius: 8px !important;
    font-size: 16px !important;
  }
  .topbar nav {
    width: 100% !important;
    gap: 8px !important;
    padding: 8px 0 0 !important;
    border: 0 !important;
    border-top: 1px solid rgba(21, 21, 26, 0.22) !important;
    border-radius: 0 !important;
    background: transparent !important;
    font-size: 16px !important;
    letter-spacing: 0.015em !important;
  }
  .topbar nav a {
    flex: 0 0 auto !important;
    min-height: 34px !important;
    padding: 0 8px !important;
    border-radius: 6px !important;
  }
  .cover-logo {
    width: calc(100% - 32px) !important;
    max-width: 600px !important;
  }
  .cover-actions {
    right: auto !important;
    left: 50% !important;
    width: min(calc(100vw - 64px), 340px) !important;
    max-width: 340px !important;
    transform: translateX(-50%) !important;
  }
  .cover-actions a {
    width: 100% !important;
    min-width: 0 !important;
  }
  .program-card-copy {
    right: 20px !important;
    bottom: 18px !important;
    left: 20px !important;
  }
  .program-card .program-card-copy h3 {
    font-size: 24px !important;
  }
  .program-card .program-card-copy .program-summary {
    margin-top: 12px !important;
    font-size: 16px !important;
    line-height: 1.55 !important;
  }
  .footer-organizer-logos {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    width: min(100%, 420px) !important;
    height: 48px !important;
    gap: 18px !important;
  }
  .footer-organizer-logos img {
    width: 100% !important;
    height: 48px !important;
  }
  .program-dialog h3 {
    padding-right: 54px !important;
  }
  .guide-event-copy .event-list article {
    display: flex !important;
    padding: 0 0 20px !important;
  }
  .guide-event-copy .event-card-media {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16/9 !important;
  }
  .guide-event-copy .event-list article > small,
  .guide-event-copy .event-list article > strong,
  .guide-event-copy .event-list article > p {
    margin-right: 20px !important;
    margin-left: 20px !important;
  }
  .guide-event-copy .event-list article > em {
    margin: 18px 0 0 !important;
    padding: 15px 20px !important;
  }
}
.shared-program-coming-soon {
  position: relative;
  display: grid;
  min-height: 420px;
  place-content: center;
  gap: 14px;
  overflow: hidden;
  border: 2px solid #15151a;
  background: #6260e6;
  color: #fff;
  text-align: center;
}
.shared-program-coming-soon:before {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(
    rgba(255, 255, 255, 0.42) 1px,
    transparent 1px
  );
  background-size: 10px 10px;
  content: "";
  opacity: 0.38;
}
.shared-program-coming-soon span,
.shared-program-coming-soon strong {
  position: relative;
  z-index: 1;
}
.shared-program-coming-soon span {
  font-size: 16px;
  font-weight: 700;
}
.shared-program-coming-soon strong {
  font-size: clamp(38px, 6vw, 78px);
  line-height: 1;
  letter-spacing: -0.045em;
}
@media (max-width: 800px) {
  .shared-program-coming-soon {
    min-height: 300px;
    padding: 28px 20px;
  }
  .shared-program-coming-soon strong {
    font-size: 42px;
  }
}

/* ===== [COMMON] ===== */
/* Restore the approved full-width FAQ accordion from the previous version. */
html,
body {
  max-width: 100%;
  overflow-x: clip;
}
/* ===== [FAQ] ===== */
.faq-list {
  display: block !important;
  width: 100% !important;
  max-width: 1440px !important;
  margin: 70px auto 0 !important;
  border-top: 1px solid #555 !important;
}
.faq-list details,
.faq-list details[open] {
  display: block !important;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #555 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.faq-list summary {
  display: grid !important;
  grid-template-columns: 96px minmax(0, 1fr) 48px !important;
  align-items: center !important;
  min-height: 0 !important;
  padding: 34px 0 !important;
  color: #fff !important;
  font-size: clamp(22px, 2vw, 30px) !important;
  line-height: 1.45 !important;
  list-style: none !important;
  cursor: pointer !important;
}
.faq-list summary > span,
.faq-list details[open] summary > span {
  display: block !important;
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #888 !important;
  font-size: 16px !important;
}
.faq-list .faq-toggle {
  position: relative !important;
  display: block !important;
  width: 40px !important;
  height: 40px !important;
  justify-self: end !important;
  transform: none !important;
  transition: transform 0.3s !important;
}
.faq-list .faq-toggle:before,
.faq-list .faq-toggle:after {
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  display: block !important;
  width: 28px !important;
  height: 2px !important;
  background: #fff !important;
  content: "" !important;
  transform: translate(-50%, -50%) !important;
}
.faq-list .faq-toggle:after {
  transform: translate(-50%, -50%) rotate(90deg) !important;
}
.faq-list details[open] .faq-toggle {
  transform: rotate(45deg) !important;
}
.faq-list .faq-answer {
  display: block !important;
  margin: 0 !important;
  padding: 0 48px 34px 96px !important;
  color: #aaa !important;
  font-size: 16px !important;
  line-height: 1.75 !important;
}
.faq-list .faq-answer p {
  margin: 0 0 10px !important;
  padding: 0 !important;
}
.faq-list .faq-answer p:last-child {
  margin-bottom: 0 !important;
}
.faq-list details:not([open]) .faq-answer {
  display: none !important;
}

/* ===== [HEADER] ===== */
/* Header and footer must never create horizontal page overflow. */
.topbar {
  right: auto !important;
  left: 50% !important;
  width: min(calc(100% - 36px), 1600px) !important;
  transform: translateX(-50%) !important;
}
/* ===== [FOOTER] ===== */
.full-footer-inner {
  grid-template-columns:
    150px 170px minmax(380px, 430px) minmax(260px, 1fr)
    80px !important;
  gap: clamp(20px, 2.2vw, 38px) !important;
  width: 100% !important;
  max-width: 1600px !important;
  margin: 0 auto !important;
}
.footer-organizer-logos {
  grid-template-columns: 170px 170px !important;
  width: 364px !important;
  height: 46px !important;
  gap: 24px !important;
  margin-top: 10px !important;
}
.footer-organizer-logos img {
  width: 170px !important;
  height: 46px !important;
}
.footer-logo-kidari {
  transform: translateY(-1px) scale(0.96) !important;
}
.full-footer small {
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}
@media (max-width: 1200px) {
  .full-footer-inner {
    grid-template-columns: 150px 170px minmax(360px, 1fr) 80px !important;
  }
  .full-footer small {
    grid-column: 1/-2 !important;
    grid-row: 2 !important;
  }
  .full-footer-top {
    grid-column: 4 !important;
    grid-row: 1/3 !important;
  }
}
/* ===== [FAQ] ===== */
@media (max-width: 800px) {
  .topbar {
    right: 10px !important;
    left: 10px !important;
    width: auto !important;
    transform: none !important;
  }
  .faq-list {
    margin-top: 48px !important;
  }
  .faq-list summary {
    grid-template-columns: 44px minmax(0, 1fr) 42px !important;
    padding: 26px 0 !important;
    font-size: 20px !important;
  }
  .faq-list summary > span,
  .faq-list details[open] summary > span {
    font-size: 14px !important;
  }
  .faq-list .faq-answer {
    padding: 0 42px 28px 44px !important;
  }
  .faq-list .faq-toggle {
    width: 38px !important;
    height: 38px !important;
  }
  .faq-list .faq-toggle:before,
  .faq-list .faq-toggle:after {
    width: 22px !important;
    height: 1.5px !important;
  }
  .full-footer-inner {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .full-footer small,
  .full-footer-top {
    grid-column: auto !important;
    grid-row: auto !important;
  }
  .full-footer-top {
    position: absolute !important;
    right: 18px !important;
    bottom: 24px !important;
  }
  .footer-organizer-logos {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    width: min(100%, 360px) !important;
    height: 44px !important;
    gap: 18px !important;
  }
  .footer-organizer-logos img {
    width: 100% !important;
    height: 44px !important;
  }
  .full-footer small {
    max-width: calc(100% - 96px) !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Stable detail modal: fixed shell, internally scrolling body, persistent controls. */
.program-dialog {
  height: min(90vh, 900px) !important;
  max-height: 90vh !important;
  overflow: hidden !important;
}
.program-dialog-inner {
  height: 100% !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  scrollbar-gutter: stable !important;
}
.program-dialog h3 {
  position: sticky !important;
  z-index: 12 !important;
  top: 0 !important;
  margin: 0 0 30px !important;
  padding: 22px 72px 20px 0 !important;
  background: #f7f4ef !important;
}
.program-dialog-close {
  position: sticky !important;
  z-index: 20 !important;
  top: 20px !important;
  float: right !important;
  margin: 0 !important;
}
.exhibition-chips {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  padding: 20px 0 !important;
  overflow: visible !important;
}
.exhibition-chips button {
  font-size: 16px !important;
}

/* ===== [HEADER] ===== */
/* Visible, restrained header corners. */
.topbar {
  border-radius: 22px !important;
}
.topbar .ticket-link {
  border-radius: 14px !important;
}
.topbar > .logo,
.topbar > nav,
.topbar > .ticket-link {
  align-self: center !important;
}
.topbar nav {
  position: static !important;
  display: flex !important;
  height: 44px !important;
  align-items: center !important;
  transform: none !important;
}
.topbar nav a {
  display: flex !important;
  height: 44px !important;
  align-items: center !important;
  line-height: 1 !important;
}
@media (max-width: 800px) {
  .topbar {
    border-radius: 18px !important;
  }
  .topbar .ticket-link {
    border-radius: 12px !important;
  }
  .topbar nav {
    height: auto !important;
  }
  .topbar nav a {
    height: 34px !important;
  }
  .program-dialog {
    height: 92vh !important;
    max-height: 92vh !important;
  }
  .program-dialog-inner {
    padding: 24px 20px 32px !important;
  }
  .program-dialog h3 {
    padding: 18px 52px 16px 0 !important;
  }
  .program-dialog-close {
    top: 17px !important;
  }
  .exhibition-chips {
    margin-right: 0 !important;
    padding-right: 0 !important;
    gap: 8px !important;
  }
  .exhibition-chips button {
    min-height: 42px !important;
    font-size: 16px !important;
  }
}

/* ===== [ABOUT] ===== */
/* Restore the approved ABOUT dimensions instead of extending the section. */
#about .intro-inner,
#about .about-copy {
  min-height: 0 !important;
}
#about .about-copy {
  padding: clamp(70px, 5.5vw, 88px) 24px !important;
}
#about .about-copy > div:first-child {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}
#about .intro-facts {
  position: static !important;
  inset: auto !important;
  margin-top: 42px !important;
  padding-top: 0 !important;
}

/* ===== [HEADER] ===== */
/* Approved six-item GNB; it fits the header and never becomes a horizontal scroller. */
.topbar nav {
  max-width: none !important;
  overflow: visible !important;
  scrollbar-width: auto !important;
}
.topbar nav::-webkit-scrollbar {
  display: none !important;
}
.topbar nav a {
  flex: 0 0 auto !important;
}
@media (max-width: 1100px) {
  .topbar nav {
    justify-content: center !important;
    overflow: visible !important;
  }
}

/* ===== [PLATFORMS] ===== */
/* Platforms are one compact group; logo lockups are optically balanced, not mechanically equal. */
#platforms {
  padding-top: clamp(72px, 7vw, 104px) !important;
  padding-bottom: clamp(78px, 7vw, 110px) !important;
}
#platforms .platforms-head {
  grid-template-columns: minmax(0, 1fr) minmax(360px, 520px) !important;
  gap: clamp(48px, 7vw, 112px) !important;
  align-items: center !important;
}
#platforms .platforms-head p {
  margin: 0 !important;
}
#platforms .platform-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 48px 32px !important;
  margin-top: 64px !important;
  padding: 0 !important;
}
#platforms .platform-grid a,
#platforms .platform-grid a:last-child {
  display: grid !important;
  min-height: 106px !important;
  grid-template-rows: 64px auto !important;
  align-content: start !important;
  gap: 12px !important;
  padding: 0 !important;
}
#platforms .platform-logo-box {
  width: 100% !important;
  height: 64px !important;
  place-self: center !important;
}
#platforms .platform-grid a > span {
  margin: 0 !important;
  font-size: 16px !important;
  line-height: 1.3 !important;
}
#platforms .platform-grid a:nth-child(1) .platform-logo-box img {
  width: 176px !important;
  height: 58px !important;
}
#platforms .platform-grid a:nth-child(2) .platform-logo-box img {
  width: 196px !important;
  height: 54px !important;
}
#platforms .platform-grid a:nth-child(3) .platform-logo-box img {
  width: 178px !important;
  height: 58px !important;
}
#platforms .platform-grid a:nth-child(4) .platform-logo-box img {
  width: 168px !important;
  height: 54px !important;
}
#platforms .platform-grid a:nth-child(5) .platform-logo-box img {
  width: 142px !important;
  height: 52px !important;
}
#platforms .platform-grid a:nth-child(6) .platform-logo-box img {
  width: 190px !important;
  height: 52px !important;
}
#platforms .platform-grid a:nth-child(7) .platform-logo-box img {
  width: 142px !important;
  height: 50px !important;
}
/* ===== [FAQ] ===== */
.faq-list details,
.faq-list summary {
  outline: 0 !important;
}
.faq-list summary:focus,
.faq-list summary:focus-visible {
  outline: 0 !important;
  box-shadow: none !important;
}
.faq-list details:not([open]) > .faq-answer {
  display: none !important;
}

/* ===== [FOOTER] ===== */
/* Footer information reads as one compact group; organizer marks share one optical height. */
.full-footer {
  padding: 0 max(4vw, 28px) !important;
}
.full-footer-inner {
  grid-template-columns: 180px 210px 330px minmax(280px, 1fr) 80px !important;
  gap: 40px !important;
  align-items: start !important;
  max-width: 1440px !important;
  padding: 44px 0 !important;
}
.full-footer-brand > img {
  width: 118px !important;
  height: 48px !important;
}
.full-footer-social {
  margin-top: 14px !important;
}
.full-footer-brand .full-footer-social {
  margin-left: 34px !important;
}
.full-footer-info {
  font-size: 16px !important;
  line-height: 1.55 !important;
}
.full-footer-info strong {
  margin-bottom: 12px !important;
  font-size: 16px !important;
}
.footer-organizer-logos {
  display: flex !important;
  width: 300px !important;
  height: 42px !important;
  align-items: center !important;
  gap: 24px !important;
  margin-top: 4px !important;
}
.footer-organizer-logos img {
  display: block !important;
  width: auto !important;
  max-width: none !important;
  height: 34px !important;
  object-fit: contain !important;
  transform: none !important;
}
.footer-logo-kidari {
  height: 31px !important;
}
.footer-logo-lezhin {
  height: 34px !important;
}
.full-footer small {
  align-self: end !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
}
@media (max-width: 1200px) {
  .full-footer-inner {
    grid-template-columns: 160px 190px minmax(300px, 1fr) 80px !important;
    gap: 30px !important;
  }
  .full-footer small {
    grid-column: 1/-2 !important;
    grid-row: 2 !important;
    margin-top: 4px !important;
  }
}
@media (max-width: 800px) {
  .full-footer-brand .full-footer-social {
    margin-left: 30px !important;
  }
  .full-footer {
    padding: 0 28px !important;
  }
  .full-footer-inner {
    display: flex !important;
    flex-direction: column !important;
    gap: 26px !important;
    padding: 40px 0 46px !important;
  }
  .full-footer-brand {
    order: 1 !important;
  }
  .full-footer-info:nth-of-type(2) {
    order: 2 !important;
  }
  .full-footer-info:nth-of-type(3) {
    order: 3 !important;
    width: 100% !important;
  }
  .full-footer small {
    order: 4 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 78px 0 0 !important;
    overflow-wrap: normal !important;
    white-space: normal !important;
  }
  .footer-organizer-logos {
    width: 100% !important;
    max-width: 320px !important;
    height: 38px !important;
    gap: 20px !important;
  }
  .footer-organizer-logos img {
    max-width: calc(50% - 10px) !important;
    height: 30px !important;
  }
  .footer-logo-kidari {
    height: 28px !important;
  }
  .footer-logo-lezhin {
    height: 30px !important;
  }
}

/* ===== [ABOUT] ===== */
/* Single authoritative ABOUT geometry: compact, with no inherited tall-section values. */
#about,
#about .intro-inner {
  min-height: 0 !important;
  height: auto !important;
}
#about .about-copy {
  min-height: 0 !important;
  height: auto !important;
  padding: 46px 24px 38px !important;
}
#about .about-copy > div:first-child {
  transform: none !important;
}
#about .about-copy .about-script {
  top: -30px !important;
}
#about .about-copy > div:first-child > p {
  margin-top: 6px !important;
}
#about .intro-facts {
  margin-top: 26px !important;
}

/* ABOUT original color system: white canvas, black content, purple emphasis. */
#about,
#about .intro-inner,
#about .about-copy {
  background: #6260e6 !important;
  color: #fff !important;
}
#about .about-copy:before {
  color: rgba(255, 255, 255, 0.13) !important;
}
#about .about-copy:after {
  background-image: radial-gradient(
    rgba(255, 255, 255, 0.62) 1.35px,
    transparent 1.35px
  ) !important;
}
#about .about-copy .about-script {
  color: rgba(255, 255, 255, 0.88) !important;
}
#about .about-copy h1 {
  color: #fff !important;
}
#about .about-copy h1 em {
  color: #ffe867 !important;
}
#about .about-copy h1 em:after {
  background: #ffe867 !important;
}
#about .about-copy > div:first-child > p {
  background: #15151a !important;
  color: #fff !important;
}
#about .intro-facts,
#about .intro-facts svg,
#about .intro-facts strong {
  color: #fff !important;
}
#about .intro-facts div + div:before {
  background: rgba(255, 255, 255, 0.58) !important;
}
/* ===== [PROGRAM] ===== */
.program-head > p {
  max-width: 520px !important;
  font-size: 18px !important;
  line-height: 1.6 !important;
  font-weight: 400 !important;
}
@media (max-width: 800px) {
  .program-head > p {
    margin-top: 20px !important;
    font-size: 16px !important;
    line-height: 1.6 !important;
  }
}
/* ===== [FAQ] ===== */
.faq-list .faq-answer,
.faq-list .faq-answer p {
  font-weight: 400 !important;
}
.faq-list .faq-answer strong {
  color: inherit !important;
  font-weight: 400 !important;
}
.faq-list summary {
  grid-template-columns: 64px minmax(0, 1fr) 48px !important;
  padding: 28px 0 !important;
  font-size: 20px !important;
  line-height: 1.5 !important;
}
.faq-list .faq-answer {
  padding: 0 48px 30px 64px !important;
  font-size: 16px !important;
  line-height: 1.75 !important;
}
@media (max-width: 800px) {
  .faq-list summary {
    grid-template-columns: 44px minmax(0, 1fr) 44px !important;
    padding: 24px 0 !important;
    font-size: 17px !important;
  }
  .faq-list .faq-answer {
    padding: 0 44px 26px !important;
    font-size: 16px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Finished event cards: no faux coupon notches, no peeking carousel, full-width reward row. */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list,
.guide-event-copy .event-list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 22px !important;
  width: 100% !important;
  overflow: visible !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article,
.guide-event-copy .event-list article {
  display: grid !important;
  min-height: 360px !important;
  grid-template-columns: minmax(0, 1fr) 42% !important;
  grid-template-rows: auto auto 1fr auto !important;
  gap: 0 22px !important;
  padding: 28px 28px 0 !important;
  overflow: hidden !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:before,
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:after,
.guide-event-copy .event-list article:before,
.guide-event-copy .event-list article:after {
  display: none !important;
  content: none !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-card-media,
.guide-event-copy .event-card-media {
  grid-column: 2 !important;
  grid-row: 1/4 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 260px !important;
  margin: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > small,
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong,
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
.guide-event-copy .event-list article > small,
.guide-event-copy .event-list article > strong,
.guide-event-copy .event-list article > p {
  margin-right: 0 !important;
  margin-left: 0 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
.guide-event-copy .event-list article > em {
  grid-column: 1/-1 !important;
  width: auto !important;
  margin: 24px -28px 0 !important;
  padding: 18px 28px 20px !important;
  border-top: 1px solid rgba(255, 255, 255, 0.48) !important;
  background: rgba(0, 0, 0, 0.12) !important;
}
/* ===== [GUIDE] ===== */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-icon,
.guide-event-copy .reward-icon {
  border-radius: 4px !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
.guide-event-copy .reward-chips > span {
  border: 0 !important;
  border-radius: 4px !important;
  font-weight: 700 !important;
}
/* ===== [PROGRAM] ===== */
@media (max-width: 980px) {
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list,
  .guide-event-copy .event-list {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 800px) {
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article,
  .guide-event-copy .event-list article {
    display: flex !important;
    min-height: 0 !important;
    flex-direction: column !important;
    padding: 0 !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-card-media,
  .guide-event-copy .event-card-media {
    order: -1 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16/9 !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > small,
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > strong,
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > p,
  .guide-event-copy .event-list article > small,
  .guide-event-copy .event-list article > strong,
  .guide-event-copy .event-list article > p {
    margin-right: 20px !important;
    margin-left: 20px !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > small,
  .guide-event-copy .event-list article > small {
    margin-top: 20px !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > em,
  .guide-event-copy .event-list article > em {
    width: 100% !important;
    margin: 20px 0 0 !important;
    padding: 16px 20px 18px !important;
  }
}

/* ===== [MAP] ===== */
/* Map and legend remain separate columns; only the map column sticks. */
@media (min-width: 1101px) {
  .festa-map-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1.55fr) minmax(360px, 0.75fr) !important;
    gap: 40px !important;
    align-items: start !important;
  }
  .booth-map-column {
    position: sticky !important;
    z-index: 1 !important;
    top: 118px !important;
    width: auto !important;
    min-width: 0 !important;
    grid-column: 1 !important;
    align-self: start !important;
  }
  .map-legend {
    position: relative !important;
    z-index: 2 !important;
    grid-column: 2 !important;
    width: auto !important;
    min-width: 0 !important;
    background: #f4f1e9 !important;
  }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .festa-map-layout {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 34px !important;
  }
  .booth-map-column {
    position: relative !important;
    top: auto !important;
    grid-column: 1 !important;
  }
  .map-legend {
    position: relative !important;
    z-index: 2 !important;
    grid-column: 1 !important;
    background: #f4f1e9 !important;
  }
}

/* ===== [HEADER] ===== */
/* Restore the approved translucent, blurred rounded header. */
.topbar {
  border: 1px solid rgba(21, 21, 26, 0.9) !important;
  border-radius: 40px !important;
  background: rgba(246, 241, 237, 0.84) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  backdrop-filter: blur(14px) !important;
  box-shadow: 0 8px 24px rgba(21, 21, 26, 0.08) !important;
}
.topbar .ticket-link {
  border-radius: 30px !important;
}

/* ===== [PROGRAM] ===== */
/* Stage timetable keeps its natural image area and centered release badge. */
.shared-program-section--stage .shared-program-gallery,
.program-dialog[data-program="stage"] .shared-program-gallery {
  position: relative !important;
  min-height: 420px !important;
  overflow: hidden !important;
}
.shared-program-section--stage .shared-program-gallery figure,
.program-dialog[data-program="stage"] .shared-program-gallery figure {
  min-height: 420px !important;
  aspect-ratio: 16/9 !important;
}
.shared-program-section--stage .shared-program-gallery img,
.program-dialog[data-program="stage"] .shared-program-gallery img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
.shared-program-section--stage .program-modal-release,
.program-dialog[data-program="stage"] .program-modal-release {
  position: absolute !important;
  z-index: 3 !important;
  top: 50% !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
}

/* ===== [PLATFORMS] ===== */
/* Every platform item, linked or pending, uses the same compact lockup grid. */
#platforms .platform-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 38px 34px !important;
  margin-top: 54px !important;
}
#platforms .platform-grid > * {
  display: grid !important;
  min-width: 0 !important;
  min-height: 102px !important;
  grid-template-rows: 62px auto !important;
  align-content: start !important;
  justify-items: center !important;
  gap: 10px !important;
  padding: 0 !important;
  text-align: center !important;
}
#platforms .platform-grid > * .platform-logo-box {
  display: grid !important;
  width: 100% !important;
  height: 62px !important;
  place-items: center !important;
}
#platforms .platform-grid > * .platform-logo-box img {
  display: block !important;
  max-width: 100% !important;
  max-height: 58px !important;
  margin: 0 !important;
  object-fit: contain !important;
}
#platforms .platform-grid > * > span {
  margin: 0 !important;
  font-size: 16px !important;
  line-height: 1.3 !important;
}
#platforms .platform-grid > *:nth-child(1) img {
  width: 176px !important;
}
#platforms .platform-grid > *:nth-child(2) img {
  width: 196px !important;
}
#platforms .platform-grid > *:nth-child(3) img {
  width: 176px !important;
}
#platforms .platform-grid > *:nth-child(4) img {
  width: 164px !important;
}
#platforms .platform-grid > *:nth-child(5) img {
  width: 138px !important;
}
#platforms .platform-grid > *:nth-child(6) img {
  width: 184px !important;
}
#platforms .platform-grid > *:nth-child(7) img {
  width: 138px !important;
}
@media (max-width: 800px) {
  #about .about-copy {
    padding: 42px 20px 34px !important;
  }
  #about .about-copy .about-script {
    top: -23px !important;
  }
  #about .intro-facts {
    margin-top: 22px !important;
  }
  .topbar {
    border-radius: 28px !important;
    background: rgba(246, 241, 237, 0.88) !important;
    backdrop-filter: blur(12px) !important;
  }
  .shared-program-section--stage .shared-program-gallery,
  .program-dialog[data-program="stage"] .shared-program-gallery {
    min-height: 260px !important;
  }
  .shared-program-section--stage .shared-program-gallery figure,
  .program-dialog[data-program="stage"] .shared-program-gallery figure {
    min-height: 260px !important;
  }
  #platforms .platform-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 26px 18px !important;
    margin-top: 38px !important;
  }
  #platforms .platform-grid > * {
    min-height: 88px !important;
    grid-template-rows: 54px auto !important;
    gap: 7px !important;
  }
  #platforms .platform-grid > * .platform-logo-box {
    height: 54px !important;
  }
  #platforms .platform-grid > * > span {
    font-size: 16px !important;
  }
}
@media (max-width: 800px) {
  #about .about-copy {
    padding: 42px 20px 34px !important;
  }
  #about .intro-facts {
    margin-top: 22px !important;
  }
  .topbar nav {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0 !important;
    overflow: visible !important;
  }
  .topbar nav a {
    min-width: 0 !important;
    justify-content: center !important;
  }
  #platforms {
    padding-top: 64px !important;
    padding-bottom: 72px !important;
  }
  #platforms .platforms-head {
    display: block !important;
  }
  #platforms .platforms-head p {
    margin-top: 24px !important;
  }
  #platforms .platform-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 28px 18px !important;
    margin-top: 42px !important;
  }
  #platforms .platform-grid a,
  #platforms .platform-grid a:last-child {
    min-height: 92px !important;
    grid-template-rows: 56px auto !important;
    gap: 8px !important;
  }
  #platforms .platform-grid a:last-child {
    grid-column: auto !important;
  }
  #platforms .platform-logo-box {
    height: 56px !important;
  }
  #platforms .platform-grid a:nth-child(1) .platform-logo-box img {
    width: 128px !important;
    height: 46px !important;
  }
  #platforms .platform-grid a:nth-child(2) .platform-logo-box img {
    width: 140px !important;
    height: 44px !important;
  }
  #platforms .platform-grid a:nth-child(3) .platform-logo-box img {
    width: 126px !important;
    height: 46px !important;
  }
  #platforms .platform-grid a:nth-child(4) .platform-logo-box img {
    width: 122px !important;
    height: 44px !important;
  }
  #platforms .platform-grid a:nth-child(5) .platform-logo-box img {
    width: 104px !important;
    height: 40px !important;
  }
  #platforms .platform-grid a:nth-child(6) .platform-logo-box img {
    width: 136px !important;
    height: 42px !important;
  }
  #platforms .platform-grid a:nth-child(7) .platform-logo-box img {
    width: 104px !important;
    height: 40px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Final ticket-pass composition: two aligned passes, without a utility-table label column. */
.ticket-compare {
  display: none !important;
}
/* ===== [GUIDE] ===== */
.ticket-pass-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  margin: 28px 0 48px;
}
/* ===== [PROGRAM] ===== */
.ticket-pass {
  position: relative;
  display: grid;
  min-width: 0;
  grid-template-rows: auto auto 1fr auto;
  border: 2px solid var(--ink);
  background: #fff;
  box-shadow: 8px 8px 0 var(--purple);
  overflow: hidden;
}
.ticket-pass header {
  min-height: 178px;
  padding: 30px 32px 26px;
  background: #ebe7e1;
}
.ticket-pass header > span {
  display: block;
  margin-bottom: 14px;
  color: #6260e6;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.ticket-pass header > strong {
  display: block;
  margin: 0 0 12px;
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif;
  font-size: 42px;
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: -0.04em;
}
.ticket-pass header > p {
  max-width: 460px;
  margin: 0;
  color: #5f5c63;
  font-size: 16px;
  line-height: 1.55;
}
.ticket-pass.is-all header {
  background: var(--purple);
  color: #fff;
}
.ticket-pass.is-all header > span,
.ticket-pass.is-all header > p {
  color: #fff;
}
/* ===== [GUIDE] ===== */
.ticket-pass-price {
  display: grid;
  min-height: 116px;
  grid-template-columns: auto 1fr;
  align-content: center;
  align-items: baseline;
  gap: 4px 12px;
  padding: 20px 32px;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid #b6b2ad;
}
.ticket-pass-price small {
  font-size: 16px;
}
.ticket-pass-price b {
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif;
  font-size: 34px;
  font-weight: 400;
  line-height: 1;
}
.ticket-pass-price em {
  grid-column: 1/-1;
  color: #6260e6;
  font-size: 16px;
  font-style: normal;
}
/* ===== [PROGRAM] ===== */
.ticket-pass dl {
  margin: 0;
  padding: 0 32px;
}
.ticket-pass dl > div {
  display: grid;
  min-height: 58px;
  grid-template-columns: 128px 1fr;
  align-items: center;
  border-bottom: 1px solid #d2cec8;
}
.ticket-pass dl > div:last-child {
  border-bottom: 0;
}
.ticket-pass dt {
  color: #77737a;
  font-size: 16px;
}
.ticket-pass dd {
  margin: 0;
  font-size: 16px;
}
.ticket-pass dd:before {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 9px;
  border-radius: 50%;
  background: var(--mint);
  content: "";
  vertical-align: 2px;
}
.ticket-pass dd.is-muted {
  color: #8c8990;
}
.ticket-pass dd.is-muted:before {
  background: #c9c6c1;
}
.ticket-pass footer {
  min-height: 92px;
  padding: 18px 32px;
  border-top: 2px solid var(--ink);
  background: #f7f4ef;
}
.ticket-pass footer p {
  margin: 0;
  color: #68656d;
  font-size: 16px;
  line-height: 1.7;
}
.ticket-pass footer b {
  display: inline-block;
  width: 82px;
  color: var(--ink);
  font-weight: 500;
}

@media (max-width: 800px) {
  .ticket-pass-grid {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 24px;
  }
  .ticket-pass {
    box-shadow: 5px 5px 0 var(--purple);
  }
  .ticket-pass header {
    min-height: 0;
    padding: 24px 22px 22px;
  }
  .ticket-pass header > strong {
    font-size: 34px;
  }
  .ticket-pass-price {
    min-height: 100px;
    padding: 18px 22px;
  }
  .ticket-pass-price b {
    font-size: 29px;
  }
  .ticket-pass dl {
    padding: 0 22px;
  }
  .ticket-pass dl > div {
    grid-template-columns: 116px 1fr;
  }
  .ticket-pass footer {
    min-height: 0;
    padding: 16px 22px;
  }
}

/* Modal header is a real fixed header; body copy can never render above it. */
.program-dialog-inner {
  padding: 0 clamp(24px, 4vw, 58px) 52px !important;
}
/* ===== [HEADER] ===== */
.program-dialog-header {
  position: sticky !important;
  z-index: 30 !important;
  top: 0 !important;
  display: flex !important;
  min-height: 104px !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
  margin: 0 calc(clamp(24px, 4vw, 58px) * -1) 28px !important;
  padding: 22px clamp(24px, 4vw, 58px) !important;
  border-bottom: 2px solid var(--ink) !important;
  background: rgba(247, 244, 239, 0.96) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  backdrop-filter: blur(12px) !important;
}
.program-dialog-header h3 {
  position: static !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.program-dialog-header .program-dialog-close {
  position: static !important;
  display: grid !important;
  flex: 0 0 48px !important;
  width: 48px !important;
  height: 48px !important;
  float: none !important;
  place-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--ink) !important;
  font-size: 38px !important;
  line-height: 1 !important;
}
/* ===== [PROGRAM] ===== */
.program-dialog[data-program="exhibition"] .program-details-body > p {
  margin: 0 0 22px !important;
}
.program-dialog[data-program="exhibition"] .exhibition-chips {
  margin: 0 0 24px !important;
  padding: 0 !important;
}
/* ===== [HEADER] ===== */
@media (max-width: 800px) {
  .program-dialog-inner {
    padding: 0 18px 32px !important;
  }
  .program-dialog-header {
    min-height: 82px !important;
    margin: 0 -18px 22px !important;
    padding: 16px 18px !important;
  }
  .program-dialog-header h3 {
    font-size: 24px !important;
  }
  .program-dialog-header .program-dialog-close {
    flex-basis: 42px !important;
    width: 42px !important;
    height: 42px !important;
    font-size: 34px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* The header and scrolling body are separate siblings: content cannot pass behind the header. */
.program-dialog {
  display: none !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  padding: 0 !important;
  overflow: hidden !important;
}
.program-dialog[open] {
  display: grid !important;
}
/* ===== [HEADER] ===== */
.program-dialog-header {
  position: relative !important;
  top: auto !important;
  z-index: 30 !important;
  display: flex !important;
  min-height: 104px !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
  margin: 0 !important;
  padding: 22px clamp(24px, 4vw, 58px) !important;
  border-bottom: 2px solid var(--ink) !important;
  background: #f7f4ef !important;
  backdrop-filter: none !important;
}
/* ===== [PROGRAM] ===== */
.program-dialog-scroll {
  min-height: 0 !important;
  padding: 28px clamp(24px, 4vw, 58px) 52px !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
  scrollbar-gutter: stable !important;
}
/* ===== [HEADER] ===== */
.program-dialog-header h3 {
  position: static !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.program-dialog-header .program-dialog-close {
  position: static !important;
  display: grid !important;
  flex: 0 0 48px !important;
  width: 48px !important;
  height: 48px !important;
  float: none !important;
  place-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* ===== [PROGRAM] ===== */
/* Rewards are descriptive metadata, not buttons. */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
.guide-event-copy .event-list article > em {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 8px 18px !important;
  margin: 22px 0 0 !important;
  padding: 16px 22px 18px !important;
  border-top: 1px solid rgba(255, 255, 255, 0.48) !important;
  background: rgba(0, 0, 0, 0.13) !important;
}
/* ===== [GUIDE] ===== */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
.guide-event-copy .reward-label {
  display: block !important;
  margin: 2px 0 0 !important;
  color: rgba(255, 255, 255, 0.72) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-icon,
.guide-event-copy .reward-icon {
  display: none !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips,
.guide-event-copy .reward-chips {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 5px 0 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
.guide-event-copy .reward-chips > span {
  display: inline !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span:not(:last-child):after,
.guide-event-copy .reward-chips > span:not(:last-child):after {
  margin: 0 10px;
  color: rgba(255, 255, 255, 0.42);
  content: "/" !important;
}
/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  .program-dialog-header {
    min-height: 82px !important;
    padding: 16px 18px !important;
  }
  .program-dialog-scroll {
    padding: 22px 18px 32px !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > em,
  .guide-event-copy .event-list article > em {
    grid-template-columns: 1fr !important;
    gap: 7px !important;
    padding: 15px 20px 17px !important;
  }
}

/* ===== [GUIDE] ===== */
/* Entry guide is an editorial list, not a stack of decorated cards. */
.entry-guide-details {
  gap: 0 !important;
  border-top: 2px solid var(--ink) !important;
}
.entry-guide-details section,
.entry-guide-details section:nth-child(n) {
  display: grid !important;
  grid-template-columns: 48px minmax(0, 1fr) !important;
  padding: 22px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #b9b5af !important;
  background: transparent !important;
}
.entry-guide-details b {
  position: static !important;
  grid-column: 1 !important;
  grid-row: 1/3 !important;
  margin: 2px 0 0 !important;
  color: #77737a !important;
  font-size: 16px !important;
  font-weight: 500 !important;
}
.entry-guide-details strong {
  grid-column: 2 !important;
  margin: 0 0 10px !important;
  font-size: 20px !important;
}
.entry-guide-details p {
  grid-column: 2 !important;
  color: #55525a !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
}
.entry-guide-details em {
  grid-column: 2 !important;
  margin: 12px 0 0 !important;
  padding: 0 !important;
  color: #67636a !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
}
@media (max-width: 800px) {
  .entry-guide-details section,
  .entry-guide-details section:nth-child(n) {
    grid-template-columns: 40px minmax(0, 1fr) !important;
    padding: 20px 0 !important;
  }
  .entry-guide-details strong {
    font-size: 18px !important;
  }
}

/* Notice guide: plain readable rows, no oversized numbers or decorative icons. */
.guide-view-notice .notice-groups {
  display: block !important;
  margin: 0 !important;
  border-top: 2px solid var(--ink) !important;
}
.guide-view-notice .notice-group,
.guide-view-notice .notice-group:nth-child(n) {
  display: grid !important;
  min-height: 0 !important;
  grid-template-columns: 56px 260px minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 0 18px !important;
  padding: 24px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #aaa6a0 !important;
  background: transparent !important;
  overflow: visible !important;
}
.guide-view-notice .notice-group .notice-icon {
  display: none !important;
}
.guide-view-notice .notice-group > b {
  position: static !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  margin: 1px 0 0 !important;
  color: #77737a !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  opacity: 1 !important;
}
.guide-view-notice .notice-group > strong {
  grid-column: 2 !important;
  grid-row: 1 !important;
  margin: 0 !important;
  font-size: 19px !important;
  line-height: 1.5 !important;
}
.guide-view-notice .notice-group > strong:after {
  display: none !important;
  content: none !important;
}
.guide-view-notice .notice-group > ul {
  display: block !important;
  grid-column: 3 !important;
  grid-row: 1 !important;
  margin: 0 !important;
  padding-left: 20px !important;
  color: #4f4c53 !important;
  font-size: 16px !important;
  line-height: 1.65 !important;
}
@media (max-width: 800px) {
  .guide-view-notice .notice-group,
  .guide-view-notice .notice-group:nth-child(n) {
    grid-template-columns: 40px minmax(0, 1fr) !important;
    gap: 8px 0 !important;
    padding: 20px 0 !important;
  }
  .guide-view-notice .notice-group > strong {
    grid-column: 2 !important;
  }
  .guide-view-notice .notice-group > ul {
    grid-column: 2 !important;
    grid-row: 2 !important;
    padding-left: 18px !important;
  }
}

/* ===== [PLATFORMS] ===== */
/* Optical logo sizing: normalize perceived area, not source-box dimensions. */
#platforms .platform-grid > * .platform-logo-box img {
  height: auto !important;
  max-height: 50px !important;
}
#platforms .platform-grid > *:nth-child(1) img {
  width: 166px !important;
}
#platforms .platform-grid > *:nth-child(2) img {
  width: 190px !important;
}
#platforms .platform-grid > *:nth-child(3) img {
  width: 132px !important;
}
#platforms .platform-grid > *:nth-child(4) img {
  width: 158px !important;
}
#platforms .platform-grid > *:nth-child(5) img {
  width: 180px !important;
}
#platforms .platform-grid > *:nth-child(6) img {
  width: 188px !important;
}
#platforms .platform-grid > *:nth-child(7) img {
  width: 180px !important;
}
@media (max-width: 800px) {
  #platforms .platform-grid > *:nth-child(1) img {
    width: 132px !important;
  }
  #platforms .platform-grid > *:nth-child(2) img {
    width: 142px !important;
  }
  #platforms .platform-grid > *:nth-child(3) img {
    width: 108px !important;
  }
  #platforms .platform-grid > *:nth-child(4) img {
    width: 124px !important;
  }
  #platforms .platform-grid > *:nth-child(5) img {
    width: 136px !important;
  }
  #platforms .platform-grid > *:nth-child(6) img {
    width: 142px !important;
  }
  #platforms .platform-grid > *:nth-child(7) img {
    width: 136px !important;
  }
}

/* ===== [FAQ] ===== */
/* FAQ answer rhythm: compact paragraphs, no callout stripe. */
.faq-list summary {
  padding: 22px 0 !important;
  line-height: 1.45 !important;
}
.faq-list .faq-answer {
  max-width: 1080px !important;
  padding: 0 48px 22px 64px !important;
  line-height: 1.6 !important;
}
.faq-list .faq-answer p {
  margin: 0 0 4px !important;
  padding: 0 !important;
  line-height: 1.6 !important;
}
.faq-list .faq-answer p:last-child {
  margin-bottom: 0 !important;
}
.faq-list .faq-note {
  margin-top: 7px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #aaa !important;
}
@media (max-width: 800px) {
  .faq-list summary {
    padding: 20px 0 !important;
  }
  .faq-list .faq-answer {
    padding: 0 44px 20px !important;
  }
}

/* ===== [ABOUT] ===== */
/* About: restore breathing room between elements without returning to the oversized section. */
@media (min-width: 801px) {
  #about .about-copy {
    padding: 64px 24px 50px !important;
  }
  #about .about-copy .about-script {
    top: -58px !important;
  }
  #about .about-copy > div:first-child > p {
    margin-top: 20px !important;
  }
  #about .intro-facts {
    margin-top: 34px !important;
  }
}
@media (max-width: 800px) {
  #about .about-copy {
    padding: 54px 20px 42px !important;
  }
  #about .about-copy .about-script {
    top: -38px !important;
  }
  #about .about-copy > div:first-child > p {
    margin-top: 16px !important;
  }
  #about .intro-facts {
    margin-top: 28px !important;
  }
}
#about .about-copy .about-script {
  color: rgba(38, 37, 117, 0.16) !important;
}

/* About: opaque decorative type and deliberate vertical rhythm. */
#about .about-copy:before {
  color: #7070e9 !important;
}
#about .about-copy .about-script {
  top: -76px !important;
  color: #5151c7 !important;
  opacity: 1 !important;
}
@media (min-width: 801px) {
  #about .about-copy {
    padding: 92px 24px 76px !important;
  }
  #about .about-copy > div:first-child > p {
    margin-top: 34px !important;
  }
  #about .intro-facts {
    margin-top: 44px !important;
  }
}
@media (max-width: 800px) {
  #about .about-copy {
    padding: 76px 20px 56px !important;
  }
  #about .about-copy .about-script {
    top: -54px !important;
  }
  #about .about-copy > div:first-child > p {
    margin-top: 26px !important;
  }
  #about .intro-facts {
    margin-top: 34px !important;
  }
}

/* ===== [GUIDE] ===== */
/* Compact small-screen header: never expand into a 3 x 2 navigation block. */
@media (max-width: 800px) {
  .topbar {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    padding: 10px 14px !important;
    border-radius: 40px !important;
  }
  .topbar .logo {
    grid-column: auto !important;
    grid-row: auto !important;
    width: 112px !important;
    height: 34px !important;
  }
  .topbar .logo img {
    width: 92px !important;
  }
  .topbar .ticket-link {
    grid-column: auto !important;
    grid-row: auto !important;
    padding: 10px 14px !important;
    font-size: 13px !important;
  }
  .topbar nav {
    position: absolute !important;
    top: calc(100% + 8px) !important;
    right: 0 !important;
    left: 0 !important;
    display: flex !important;
    width: auto !important;
    height: 54px !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 14px !important;
    padding: 7px 18px !important;
    overflow-x: auto !important;
    border: 1px solid #15151a !important;
    border-radius: 32px !important;
    background: rgba(246, 241, 237, 0.94) !important;
    box-shadow: 0 8px 24px rgba(21, 21, 26, 0.08) !important;
    font-size: 13px !important;
    letter-spacing: 0.01em !important;
    scrollbar-width: none !important;
  }
  .topbar nav a {
    display: flex !important;
    flex: 0 0 auto !important;
    height: 38px !important;
    min-height: 38px !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 7px !important;
  }
  .guide-tabs-wrap {
    overflow: visible !important;
  }
  .guide-tabs {
    display: flex !important;
    width: 100% !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none !important;
  }
  .guide-tabs::-webkit-scrollbar {
    display: none !important;
  }
  .guide-tab,
  .guide-tab:nth-child(n),
  .guide-tab:last-child {
    display: flex !important;
    flex: 0 0 156px !important;
    width: 156px !important;
    min-width: 156px !important;
    min-height: 72px !important;
    grid-column: auto !important;
    align-items: center !important;
    padding: 12px 14px !important;
    border-right: 1px solid #666 !important;
    border-bottom: 0 !important;
    font-size: 16px !important;
    line-height: 1.2 !important;
    text-align: left !important;
    white-space: normal !important;
    scroll-snap-align: start !important;
  }
  .guide-scroll-next,
  .guide-scroll-prev {
    position: absolute !important;
    z-index: 5 !important;
    top: 50% !important;
    bottom: auto !important;
    display: grid !important;
    width: 34px !important;
    height: 34px !important;
    place-items: center !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #15151a !important;
    color: #ffe867 !important;
    transform: translateY(-50%) !important;
    cursor: pointer !important;
  }
  .guide-scroll-next {
    right: 8px !important;
  }
  .guide-scroll-prev {
    left: 8px !important;
  }
  .guide-scroll-next svg,
  .guide-scroll-prev svg {
    width: 18px !important;
    height: 18px !important;
  }
  .guide-scroll-next[hidden],
  .guide-scroll-prev[hidden] {
    display: none !important;
  }
  .location-map {
    min-height: 0 !important;
    height: auto !important;
  }
  .location-map-expand {
    position: relative !important;
    inset: auto !important;
    display: grid !important;
    height: auto !important;
    background: #fff !important;
  }
  .location-map-expand img {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    object-fit: contain !important;
  }
  .location-map-expand span {
    position: static !important;
    display: flex !important;
    min-height: 48px !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px 16px !important;
    background: #15151a !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
  }
}

/* Ticket cards: compact editorial hierarchy instead of a heavy boxed table. */
.ticket-pass-grid {
  gap: 0 !important;
  border: 2px solid #15151a !important;
  background: #15151a !important;
}
/* ===== [PROGRAM] ===== */
.ticket-pass {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.ticket-pass + .ticket-pass {
  border-left: 2px solid #15151a !important;
}
.ticket-pass header {
  min-height: 160px;
  padding: 28px 30px 24px !important;
  border-top: 7px solid #6260e6;
  background: #fff !important;
}
.ticket-pass.is-all header {
  background: #6260e6 !important;
  border-top-color: #15151a !important;
}
.ticket-pass header > span {
  margin-bottom: 12px !important;
  font-size: 13px !important;
  font-weight: 850 !important;
}
.ticket-pass header > strong {
  font-size: 38px !important;
}
/* ===== [GUIDE] ===== */
.ticket-pass-price {
  min-height: 96px;
  padding: 18px 30px !important;
  border-top: 1px solid #dedad4 !important;
  border-bottom: 1px solid #dedad4 !important;
  background: #f4f1ec !important;
}
.ticket-pass-price b {
  font-size: 31px !important;
}
/* ===== [PROGRAM] ===== */
.ticket-pass dl {
  padding: 8px 30px !important;
}
.ticket-pass dl > div {
  min-height: 52px !important;
  grid-template-columns: 116px 1fr !important;
}
.ticket-pass dt,
.ticket-pass dd {
  font-size: 15px !important;
}
.ticket-pass footer {
  padding: 16px 30px 18px !important;
  border-top: 1px solid #dedad4 !important;
  background: #fff !important;
}
.ticket-pass footer p {
  font-size: 14px !important;
  line-height: 1.6 !important;
}
@media (max-width: 800px) {
  .ticket-pass-grid {
    gap: 0 !important;
  }
  .ticket-pass + .ticket-pass {
    border-top: 2px solid #15151a !important;
    border-left: 0 !important;
  }
  .ticket-pass header {
    padding: 22px 20px 20px !important;
  }
  .ticket-pass header > strong {
    font-size: 32px !important;
  }
  .ticket-pass header > p {
    font-size: 14px !important;
  }
  .ticket-pass-price {
    min-height: 86px;
    padding: 16px 20px !important;
  }
  .ticket-pass-price b {
    font-size: 27px !important;
  }
  .ticket-pass dl {
    padding: 6px 20px !important;
  }
  .ticket-pass dl > div {
    min-height: 48px !important;
    grid-template-columns: 104px 1fr !important;
  }
  .ticket-pass dt,
  .ticket-pass dd {
    font-size: 14px !important;
  }
  .ticket-pass footer {
    padding: 14px 20px 16px !important;
  }
}

/* ===== [FOOTER] ===== */
/* Footer columns share one top/content baseline. */
@media (min-width: 1101px) {
  .full-footer-inner {
    display: grid !important;
    grid-template-columns: 240px 260px 520px minmax(300px, 1fr) !important;
    gap: 44px !important;
    align-items: start !important;
    max-width: 1600px !important;
    padding: 44px 0 !important;
  }
  .full-footer-brand,
  .full-footer-info {
    align-self: start !important;
    margin: 0 !important;
  }
  .full-footer-brand > img {
    width: 118px !important;
    height: 54px !important;
    margin: 0 !important;
    object-position: left top !important;
  }
  .full-footer-info strong {
    height: 22px !important;
    margin: 0 0 18px !important;
    line-height: 22px !important;
  }
  .full-footer-info a {
    line-height: 1.55 !important;
  }
  .footer-organizer-logos {
    width: auto !important;
    height: 54px !important;
    align-items: flex-start !important;
    margin: 0 !important;
    gap: 30px !important;
  }
  .footer-organizer-logos .footer-logo-kidari {
    height: 38px !important;
    margin-top: 0 !important;
  }
  .footer-organizer-logos .footer-logo-lezhin {
    height: 32px !important;
    margin-top: 1px !important;
  }
  .full-footer small {
    align-self: start !important;
    margin: 0 !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
  }
}

/* ===== [ABOUT] ===== */
/* ABOUT locked to the approved white-version geometry; colors only are changed. */
#about .about-copy {
  position: relative !important;
  display: flex !important;
  min-height: 680px !important;
  height: auto !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  padding: clamp(110px, 9vw, 140px) 24px !important;
  overflow: hidden !important;
  text-align: center !important;
  isolation: isolate !important;
}
#about .about-copy > div:first-child {
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  transform: none !important;
}
#about .about-copy:before {
  position: absolute !important;
  z-index: 0 !important;
  top: 50% !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  display: block !important;
  color: #7070e9 !important;
  font-size: clamp(138px, 20vw, 300px) !important;
  line-height: 0.75 !important;
  letter-spacing: -0.075em !important;
  transform: translate(-50%, -50%) !important;
}
#about .about-copy:after {
  position: absolute !important;
  z-index: 1 !important;
  inset: 0 !important;
  display: block !important;
  height: auto !important;
  background-image: radial-gradient(
    rgba(255, 255, 255, 0.7) 1px,
    transparent 1px
  ) !important;
  background-size: 12px 12px !important;
  clip-path: polygon(0 72%, 100% 48%, 100% 100%, 0 100%) !important;
  opacity: 1 !important;
}
#about .about-copy .about-script {
  position: absolute !important;
  z-index: -1 !important;
  top: -58px !important;
  left: 55% !important;
  margin: 0 !important;
  color: #5151c7 !important;
  font-size: clamp(54px, 5vw, 76px) !important;
  line-height: 1 !important;
  opacity: 1 !important;
  transform: translateX(-50%) rotate(-4deg) !important;
}
#about .about-copy h1 {
  max-width: 980px !important;
  margin: 0 0 22px !important;
  color: #fff !important;
  font-size: clamp(48px, 5.4vw, 72px) !important;
  line-height: 1.08 !important;
  white-space: normal !important;
}
#about .about-copy h1 em {
  color: #ffe867 !important;
}
#about .about-copy h1 em:after {
  background: #ffe867 !important;
}
#about .about-copy > div:first-child > p {
  margin: 8px 0 0 !important;
  padding: 10px 18px !important;
  font-size: clamp(17px, 1.35vw, 21px) !important;
  line-height: 1.5 !important;
}
#about .intro-facts {
  position: relative !important;
  inset: auto !important;
  display: flex !important;
  width: auto !important;
  max-width: none !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 44px !important;
  margin: 58px 0 0 !important;
  padding: 0 !important;
  color: #fff !important;
}
#about .intro-facts div {
  gap: 10px !important;
  white-space: nowrap !important;
}
#about .intro-facts div + div:before {
  display: block !important;
  width: 1px !important;
  height: 26px !important;
  margin-right: 34px !important;
  background: #fff !important;
}
#about .intro-facts svg,
#about .intro-facts strong {
  color: #fff !important;
}
@media (max-width: 800px) {
  #about .about-copy {
    min-height: 570px !important;
    padding: 112px 22px 88px !important;
  }
  #about .about-copy:before {
    font-size: 36vw !important;
  }
  #about .about-copy:after {
    background-size: 10px 10px !important;
    clip-path: polygon(0 78%, 100% 62%, 100% 100%, 0 100%) !important;
  }
  #about .about-copy .about-script {
    top: -42px !important;
    left: 54% !important;
    font-size: clamp(38px, 10vw, 52px) !important;
  }
  #about .about-copy h1 {
    font-size: clamp(34px, 9vw, 43px) !important;
    line-height: 1.2 !important;
  }
  #about .about-copy > div:first-child > p {
    margin: 8px 0 0 !important;
    padding: 9px 12px !important;
    font-size: 16px !important;
  }
  #about .intro-facts {
    flex-direction: column !important;
    gap: 12px !important;
    margin-top: 44px !important;
  }
  #about .intro-facts div {
    white-space: normal !important;
  }
  #about .intro-facts div + div:before {
    display: none !important;
  }
}

/* ===== [PROGRAM] ===== */
/* A single, restrained pending-state treatment for stage and merch. */
.shared-program-coming {
  position: relative !important;
  min-height: 420px !important;
  margin: 0 !important;
  overflow: hidden !important;
  border: 1px solid #15151a !important;
  background: #15151a !important;
}
.shared-program-coming img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 420px !important;
  object-fit: cover !important;
  filter: blur(14px) !important;
  opacity: 0.58 !important;
  transform: scale(1.045) !important;
}
.shared-program-coming:after {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.62);
  content: "";
}
.shared-program-coming figcaption {
  position: absolute !important;
  z-index: 2 !important;
  inset: 50% auto auto 50% !important;
  width: auto !important;
  padding: 0 !important;
  background: transparent !important;
  color: #fff !important;
  font-size: clamp(24px, 3vw, 40px) !important;
  font-weight: 850 !important;
  letter-spacing: 0.04em !important;
  line-height: 1 !important;
  transform: translate(-50%, -50%) !important;
  white-space: nowrap !important;
}

/* Cards without imagery use a readable one-column information flow. */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:not(:has(.event-card-media)),
.guide-event-copy .event-list article:not(:has(.event-card-media)) {
  display: flex !important;
  min-height: 0 !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  padding: 30px !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:not(:has(.event-card-media))
  > small,
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:not(:has(.event-card-media))
  > strong,
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:not(:has(.event-card-media))
  > p,
.guide-event-copy .event-list article:not(:has(.event-card-media)) > small,
.guide-event-copy .event-list article:not(:has(.event-card-media)) > strong,
.guide-event-copy .event-list article:not(:has(.event-card-media)) > p {
  margin-right: 0 !important;
  margin-left: 0 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:not(:has(.event-card-media))
  > p,
.guide-event-copy .event-list article:not(:has(.event-card-media)) > p {
  max-width: 620px !important;
  margin-top: 8px !important;
}
@media (max-width: 800px) {
  .shared-program-coming,
  .shared-program-coming img {
    min-height: 260px !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article:not(:has(.event-card-media)),
  .guide-event-copy .event-list article:not(:has(.event-card-media)) {
    padding: 22px !important;
  }
}

/* ===== [GUIDE] ===== */
/* Entry guide: the route belongs on the map; content follows below instead of a repeated split layout. */
.guide-view-entry .entry-guide {
  display: block !important;
}
/* ===== [MAP] ===== */
.entry-route-map {
  position: relative;
  width: min(100%, 1180px);
  margin: 30px auto 34px !important;
  overflow: hidden;
  border: 2px solid var(--ink);
  background: #fff;
}
.entry-route-map .guide-reference-image {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  border: 0 !important;
}
.entry-route-map svg {
  position: absolute;
  z-index: 2;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.entry-route-map .route-line {
  fill: none;
  stroke-width: 10;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 18 15;
  filter: drop-shadow(0 2px 0 #fff);
}
.entry-route-map .route-in {
  stroke: #166c43;
}
.entry-route-map .route-out {
  stroke: #ef4f7a;
}
.entry-route-map .route-pickup {
  stroke: #665fe7;
}
.entry-route-map .route-label rect {
  stroke: #fff;
  stroke-width: 3;
}
.entry-route-map .route-label text {
  fill: #fff;
  font-size: 20px;
  font-weight: 900;
  text-anchor: middle;
}
.entry-route-map .route-label-in rect {
  fill: #166c43;
}
.entry-route-map .route-label-out rect {
  fill: #ef4f7a;
}
.entry-route-map .route-label-pickup rect {
  fill: #665fe7;
}
/* ===== [GUIDE] ===== */
.entry-guide-details {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0 34px !important;
  border-top: 2px solid var(--ink) !important;
}
.entry-guide-details section,
.entry-guide-details section:nth-child(n) {
  grid-template-columns: minmax(0, 1fr) !important;
  padding: 24px 0 26px !important;
}
.entry-guide-details b {
  display: none !important;
}
.entry-guide-details strong,
.entry-guide-details p,
.entry-guide-details em {
  grid-column: 1 !important;
}

/* Notice guide: preserve the established headings; no newly attached index labels. */
.notice-group > b {
  display: none !important;
}
.notice-group > strong,
.notice-group > ul {
  margin-left: 0 !important;
}

/* ===== [MAP] ===== */
@media (max-width: 800px) {
  .entry-route-map {
    width: 100%;
    margin: 22px 0 26px !important;
  }
  .entry-route-map .route-line {
    stroke-width: 13;
    stroke-dasharray: 18 16;
  }
  .entry-route-map .route-label text {
    font-size: 24px;
  }
  .entry-guide-details {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Event cards: preserve the established card colors; repair text contrast only. */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article,
.guide-event-copy .event-list article {
  background: var(--ticket-color, #ff2424) !important;
  color: #fff !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(1),
.guide-event-copy .event-list article:nth-child(1) {
  --ticket-color: #ff2424;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(2),
.guide-event-copy .event-list article:nth-child(2) {
  --ticket-color: #d687d1;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(3),
.guide-event-copy .event-list article:nth-child(3) {
  --ticket-color: #5574f3;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(4),
.guide-event-copy .event-list article:nth-child(4) {
  --ticket-color: #56535d;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(5),
.guide-event-copy .event-list article:nth-child(5) {
  --ticket-color: #8375eb;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(6),
.guide-event-copy .event-list article:nth-child(6) {
  --ticket-color: #ce3034;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(7),
.guide-event-copy .event-list article:nth-child(7) {
  --ticket-color: #6474ee;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(8),
.guide-event-copy .event-list article:nth-child(8) {
  --ticket-color: #8f435e;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(9),
.guide-event-copy .event-list article:nth-child(9) {
  --ticket-color: #55515f;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(10),
.guide-event-copy .event-list article:nth-child(10) {
  --ticket-color: #35343b;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > small,
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong,
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
.guide-event-copy .event-list article > small,
.guide-event-copy .event-list article > strong,
.guide-event-copy .event-list article > p,
.guide-event-copy .event-list article > em {
  color: #fff !important;
  opacity: 1 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
.guide-event-copy .event-list article > em {
  background: rgba(0, 0, 0, 0.16) !important;
}

/* ===== [ABOUT] ===== */
/* Keep the approved About composition while removing the excessive section height. */
#about,
#about .intro-inner {
  min-height: 0 !important;
  height: auto !important;
}
#about .about-copy {
  min-height: 0 !important;
  height: auto !important;
  padding: 84px 24px 72px !important;
}
@media (max-width: 800px) {
  #about .about-copy {
    min-height: 0 !important;
    padding: 68px 20px 54px !important;
  }
}

/* ===== [GUIDE] ===== */
/* Final page-level fixes. */
.ticket-pass-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
}
.ticket-pass-grid > .ticket-pass {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
}
/* ===== [PROGRAM] ===== */
.ticket-compare {
  grid-template-columns: 180px minmax(0, 1fr) minmax(0, 1fr) !important;
}
.ticket-pass header > span,
.ticket-pass header > p {
  display: none !important;
}
.ticket-pass header {
  min-height: 0 !important;
  display: flex !important;
  align-items: center !important;
  padding-block: 30px !important;
}
/* ===== [MAP] ===== */
.map-legend li,
.map-legend li:hover,
.map-legend li:focus-visible,
.map-legend li.is-active,
.exhibition-chips button,
.exhibition-chips button:hover,
.exhibition-chips button:focus-visible,
.exhibition-chips button[aria-selected="true"] {
  border-left: 0 !important;
  box-shadow: none !important;
}
/* ===== [FAQ] ===== */
.faq-list .faq-answer {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}
/* ===== [GUIDE] ===== */
@media (max-width: 800px) {
  .ticket-pass-grid {
    grid-template-columns: 1fr !important;
  }
  .ticket-compare {
    grid-template-columns: 112px 190px 190px !important;
  }
}

/* Entry guide: factual source image only; guidance appears before the image. */
.guide-view-entry .entry-guide {
  display: flex !important;
  flex-direction: column !important;
}
.guide-view-entry .entry-guide-head {
  order: 1 !important;
}
.guide-view-entry .entry-guide-details {
  order: 2 !important;
  margin: 24px 0 30px !important;
}
.guide-view-entry .entry-route-map {
  order: 3 !important;
  width: min(100%, 980px) !important;
  max-width: 980px !important;
  margin: 0 auto !important;
}
.guide-view-entry .entry-route-map svg {
  display: none !important;
}
.guide-view-entry .entry-route-map .guide-reference-image {
  display: block !important;
  width: 100% !important;
  max-width: 980px !important;
  height: auto !important;
  object-fit: contain !important;
}

/* Final authoritative overrides after all legacy rules. */
.guide-view-notice .notice-group > b {
  display: block !important;
  position: static !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  justify-self: start !important;
  margin: 1px 0 0 !important;
  color: #77737a !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  opacity: 1 !important;
  transform: none !important;
}
/* ===== [PLATFORMS] ===== */
.program-head > p,
.festa-map-head > p,
.guide-head > p,
#platforms .platforms-head > p {
  font-size: 16px !important;
  line-height: 1.65 !important;
}
/* ===== [GUIDE] ===== */
.guide-tab:before,
.guide-tab:after,
.guide-tab:hover:before,
.guide-tab:hover:after,
.guide-tab:focus-visible:before,
.guide-tab:focus-visible:after {
  display: none !important;
  content: none !important;
}
.guide-tab:hover:not([aria-selected="true"]),
.guide-tab:focus-visible:not([aria-selected="true"]) {
  background: #323138 !important;
  color: #fff !important;
  box-shadow: none !important;
  outline: 0 !important;
}
.guide-tab[aria-selected="true"],
.guide-tab[aria-selected="true"]:hover,
.guide-tab[aria-selected="true"]:focus-visible {
  background: var(--mint) !important;
  color: var(--ink) !important;
  box-shadow: none !important;
  outline: 0 !important;
}
/* ===== [PROGRAM] ===== */
.exhibition-view {
  padding-bottom: 38px !important;
}
.exhibition-view[data-active-zone="11"] {
  padding-bottom: 48px !important;
}
/* ===== [FOOTER] ===== */
@media (min-width: 1101px) {
  .full-footer {
    padding-inline: max(28px, 4vw) !important;
  }
  .full-footer-inner {
    display: grid !important;
    width: 100% !important;
    max-width: 1600px !important;
    grid-template-columns: 190px 220px 410px minmax(0, 1fr) !important;
    gap: clamp(26px, 2.6vw, 48px) !important;
    align-items: start !important;
    box-sizing: border-box !important;
  }
  .full-footer-inner > * {
    min-width: 0 !important;
  }
  .full-footer-brand .full-footer-social {
    margin-left: 0 !important;
  }
  .footer-organizer-logos {
    width: 100% !important;
    max-width: 410px !important;
  }
  .full-footer small {
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-wrap: break-word !important;
  }
  .full-footer-top {
    width: 58px !important;
    height: 58px !important;
    right: 20px !important;
    bottom: 20px !important;
  }
}
/* ===== [GUIDE] ===== */
@media (max-width: 800px) {
  .guide-view-notice .notice-group > b {
    display: block !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    font-size: 14px !important;
  }
  .program-head > p,
  .festa-map-head > p,
  .guide-head > p,
  #platforms .platforms-head > p {
    font-size: 14px !important;
    line-height: 1.6 !important;
  }
  .exhibition-view {
    padding-bottom: 26px !important;
  }
  .exhibition-view[data-active-zone="11"] {
    padding-bottom: 32px !important;
  }
}

/* ===== [ABOUT] ===== */
/* About spacing: only a modest reduction from the approved composition. */
#about .about-copy {
  min-height: 600px !important;
  padding: 100px 24px 88px !important;
}
@media (max-width: 800px) {
  #about .about-copy {
    min-height: 520px !important;
    padding: 82px 20px 68px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Event cards: restore the offset shadow and refine the reward row without changing copy. */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article,
.guide-event-copy .event-list article {
  box-shadow: 8px 8px 0 var(--purple) !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
.guide-event-copy .event-list article > em {
  display: grid !important;
  grid-template-columns: 92px minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 8px 18px !important;
  margin: 22px -28px 0 !important;
  padding: 17px 28px 19px !important;
  border-top: 1px solid rgba(255, 255, 255, 0.58) !important;
  background: rgba(21, 21, 26, 0.18) !important;
  font-style: normal !important;
}
/* ===== [GUIDE] ===== */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
.guide-event-copy .reward-label {
  color: var(--yellow) !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  letter-spacing: 0.12em !important;
  line-height: 1.6 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips,
.guide-event-copy .reward-chips {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 5px 0 !important;
  line-height: 1.6 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
.guide-event-copy .reward-chips > span {
  color: #fff !important;
  font-weight: 700 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span:not(:last-child):after,
.guide-event-copy .reward-chips > span:not(:last-child):after {
  margin: 0 12px !important;
  color: rgba(255, 255, 255, 0.5) !important;
  content: "/" !important;
}
/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article,
  .guide-event-copy .event-list article {
    box-shadow: 5px 5px 0 var(--purple) !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > em,
  .guide-event-copy .event-list article > em {
    grid-template-columns: 1fr !important;
    gap: 5px !important;
    margin: 18px 0 0 !important;
    padding: 15px 20px 17px !important;
  }
}

/* Section headings use one shared design-system scale. */
.about-copy h1,
.program-head .program-title-kicker,
.program-head .program-title-main,
.festa-map h2,
.guide h2,
.location h2,
.platforms h2,
.faq h2 {
  font-size: clamp(34px, 3.2vw, 46px) !important;
  line-height: 1.08 !important;
}

/* Mobile PROGRAM: the heading and horizontal cards share one gutter, and the
   carousel keeps a visible scrollbar as part of the interaction affordance. */
@media (max-width: 800px) {
  #program {
    padding-right: 24px !important;
    padding-left: 24px !important;
  }
  #program .program-head {
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
  .about-copy h1,
  .program-head .program-title-kicker,
  .program-head .program-title-main,
  .festa-map h2,
  .guide h2,
  .location h2,
  .platforms h2,
  .faq h2 {
    font-size: clamp(34px, 8.5vw, 40px) !important;
    line-height: 1.08 !important;
  }
  #program .program-head h2 {
    font-size: inherit !important;
    line-height: 1.08 !important;
    letter-spacing: -0.045em !important;
  }
  #program .program-title-kicker,
  #program .program-title-main {
    display: block !important;
    font-size: clamp(34px, 8.5vw, 40px) !important;
    line-height: 1.08 !important;
    white-space: nowrap !important;
  }
  #program .program-title-kicker {
    letter-spacing: -0.1em !important;
  }
  #program .program-title-kicker:after {
    content: none !important;
  }
  #program .program-head > p {
    margin-top: 16px !important;
  }
  #program .program-grid {
    display: flex !important;
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding: 0 0 14px !important;
    gap: 12px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    box-sizing: border-box !important;
    scrollbar-width: thin !important;
    scrollbar-color: #ffe867 rgba(255, 255, 255, 0.2) !important;
  }
  #program .program-grid::-webkit-scrollbar {
    display: block !important;
    height: 7px !important;
  }
  #program .program-grid::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.2) !important;
  }
  #program .program-grid::-webkit-scrollbar-thumb {
    border: 0 !important;
    border-radius: 999px !important;
    background: #ffe867 !important;
  }
  #program .program-card,
  #program .program-card:nth-child(4),
  #program .program-card:nth-child(5),
  #program .program-card:last-child {
    flex: 0 0 min(82vw, 420px) !important;
    max-width: calc(100vw - 48px) !important;
  }
}

/* Event imagery uses the card color across its full area; logo artwork stays undistorted. */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-card-media,
.guide-event-copy .event-card-media {
  background: var(--ticket-color) !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(n + 4):nth-child(-n + 9)
  .event-card-media
  img,
.guide-event-copy
  .event-list
  article:nth-child(n + 4):nth-child(-n + 9)
  .event-card-media
  img {
  mix-blend-mode: multiply !important;
}

/* ===== [GUIDE] ===== */
/* Guide tabs: no decorative stars or accent strip; hover is color-only. */
.guide-tabs .guide-tab::before,
.guide-tabs .guide-tab::after,
.guide-tabs .guide-tab:hover::before,
.guide-tabs .guide-tab:hover::after,
.guide-tabs .guide-tab:focus-visible::before,
.guide-tabs .guide-tab:focus-visible::after,
.guide-tabs .guide-tab[aria-selected="true"]::before,
.guide-tabs .guide-tab[aria-selected="true"]::after {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  border: 0 !important;
  background: none !important;
  content: none !important;
}
.guide-tabs .guide-tab,
.guide-tabs .guide-tab:hover,
.guide-tabs .guide-tab:focus-visible {
  background-image: none !important;
}

/* ===== [PROGRAM] ===== */
/* Exhibition chips keep their complete outline; only the unwanted accent
   stripe is absent. */
.exhibition-chips button,
.exhibition-chips button:hover,
.exhibition-chips button:focus-visible {
  border: 1px solid var(--ink) !important;
  box-shadow: none !important;
}
.exhibition-chips button[aria-selected="true"] {
  border: 1px solid var(--purple) !important;
  background: var(--purple) !important;
  color: #fff !important;
}

/* One title scale across every main section. */
#about .about-copy h1,
#program .program-title-kicker,
#program .program-title-main,
#map .festa-map-head h2,
#guide .guide-head h2,
#location .location-copy h2,
#platforms .platforms-head h2,
#faq > h2 {
  font-size: clamp(38px, 3.2vw, 46px) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.045em !important;
}
@media (max-width: 800px) {
  #about .about-copy h1,
  #program .program-title-kicker,
  #program .program-title-main,
  #map .festa-map-head h2,
  #guide .guide-head h2,
  #location .location-copy h2,
  #platforms .platforms-head h2,
  #faq > h2 {
    font-size: clamp(34px, 9vw, 40px) !important;
    line-height: 1.08 !important;
  }
  #program .program-title-kicker,
  #program .program-title-main {
    display: block !important;
    white-space: nowrap !important;
  }
  #program .program-title-kicker {
    letter-spacing: -0.1em !important;
  }
}

/* Rewards read as rewards: a clear label plus individual items, with copy unchanged. */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
.guide-event-copy .event-list article > em {
  display: flex !important;
  grid-template-columns: none !important;
  align-items: center !important;
  gap: 12px 18px !important;
  background: rgba(21, 21, 26, 0.2) !important;
}
/* ===== [GUIDE] ===== */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
.guide-event-copy .reward-label {
  display: inline-flex !important;
  flex: 0 0 auto;
  align-items: center !important;
  margin: 0 !important;
  padding: 7px 10px !important;
  background: var(--yellow) !important;
  color: var(--ink) !important;
  font-size: 11px !important;
  font-weight: 950 !important;
  letter-spacing: 0.11em !important;
  line-height: 1 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips,
.guide-event-copy .reward-chips {
  display: flex !important;
  min-width: 0 !important;
  flex: 1 1 auto !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
.guide-event-copy .reward-chips > span {
  display: inline-flex !important;
  min-height: 30px !important;
  align-items: center !important;
  padding: 5px 10px !important;
  border: 1px solid rgba(255, 255, 255, 0.45) !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.12) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span:not(:last-child):after,
.guide-event-copy .reward-chips > span:not(:last-child):after {
  display: none !important;
  margin: 0 !important;
  content: none !important;
}
/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > em,
  .guide-event-copy .event-list article > em {
    align-items: flex-start !important;
    gap: 10px !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .reward-chips
    > span,
  .guide-event-copy .reward-chips > span {
    min-height: 28px !important;
    padding: 4px 9px !important;
    font-size: 12px !important;
  }
}

/* ===== [HEADER] ===== */
/* Header/footer regression fixes: preserve the approved sizes and baselines. */
@media (max-width: 800px) {
  .topbar nav,
  .topbar nav a,
  .topbar .ticket-link {
    font-size: 16px !important;
  }
}
/* ===== [FOOTER] ===== */
.full-footer-info:has(.footer-organizer-logos) > strong {
  margin-bottom: 6px !important;
}
.footer-organizer-logos {
  height: 34px !important;
  align-items: flex-start !important;
  margin-top: 0 !important;
  gap: 24px !important;
}
.footer-organizer-logos .footer-logo-kidari {
  height: 30px !important;
  margin-top: 0 !important;
}
.footer-organizer-logos .footer-logo-lezhin {
  height: 32px !important;
  margin-top: 0 !important;
}
@media (max-width: 800px) {
  .full-footer-brand > img {
    margin-left: 0 !important;
    object-position: left center !important;
  }
  .full-footer-brand .full-footer-social {
    margin-left: 0 !important;
  }
  .footer-organizer-logos {
    height: 32px !important;
    gap: 18px !important;
  }
  .footer-organizer-logos .footer-logo-kidari {
    height: 28px !important;
  }
  .footer-organizer-logos .footer-logo-lezhin {
    height: 30px !important;
  }
  .full-footer-inner {
    gap: 14px !important;
    padding: 30px 0 34px !important;
  }
  .full-footer-info {
    gap: 2px !important;
    margin: 0 !important;
  }
  .full-footer-info > strong {
    margin: 0 0 5px !important;
  }
  .full-footer-info:has(.footer-organizer-logos) > strong {
    margin-bottom: 5px !important;
  }
  .full-footer small {
    width: 100% !important;
    max-width: 100% !important;
    padding-right: 76px !important;
  }
  .full-footer-top {
    right: 16px !important;
    bottom: 18px !important;
    width: 58px !important;
    height: 58px !important;
  }
}

/* ===== [GUIDE] ===== */
/* Timetable columns: the time column is content-sized instead of absorbing
   the remaining table width. */
.session-schedule {
  table-layout: fixed !important;
  min-width: 820px !important;
}
.session-schedule th:first-child {
  width: 58px !important;
}
.session-schedule th:nth-child(2) {
  width: 108px !important;
}
.session-schedule th:nth-child(3),
.session-schedule td:nth-child(3) {
  width: 112px !important;
  white-space: nowrap !important;
}
@media (max-width: 800px) {
  .session-schedule {
    min-width: 760px !important;
  }
  .session-schedule th,
  .session-schedule td {
    padding: 10px 7px !important;
    font-size: 12px !important;
  }
  .session-schedule th:first-child {
    width: 48px !important;
  }
  .session-schedule th:nth-child(2) {
    width: 92px !important;
  }
  .session-schedule th:nth-child(3),
  .session-schedule td:nth-child(3) {
    width: 104px !important;
  }
}

/* ===== [HEADER] ===== */
/* 0911 GNB restored verbatim in structure and scale. The only behavioral
   adjustment is preventing a vertical scrollbar inside the menu rail. */
.topbar {
  top: 18px !important;
  right: auto !important;
  left: 50% !important;
  display: flex !important;
  width: min(calc(100% - 44px), 1600px) !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: clamp(18px, 2.5vw, 42px) !important;
  padding: 13px 18px !important;
  border: 1px solid var(--ink) !important;
  border-radius: 40px !important;
  background: rgba(243, 240, 233, 0.9) !important;
  transform: translateX(-50%) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  backdrop-filter: blur(12px) !important;
}
.topbar .logo {
  display: flex !important;
  flex: 0 0 140px !important;
  width: 140px !important;
  height: 42px !important;
  align-items: center !important;
  margin: 0 clamp(8px, 1.2vw, 20px) 0 0 !important;
  padding-inline: 4px !important;
}
.topbar .logo img {
  display: block !important;
  width: 96px !important;
  height: auto !important;
  object-fit: contain !important;
}
.topbar nav {
  position: static !important;
  display: flex !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  min-height: 16px !important;
  flex: 1 1 auto !important;
  align-items: center !important;
  justify-content: center !important;
  gap: clamp(9px, 1.1vw, 20px) !important;
  padding: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 12px !important;
  line-height: 1.2 !important;
  letter-spacing: 0.1em !important;
  white-space: nowrap !important;
  scrollbar-width: none !important;
  transform: none !important;
}
.topbar nav::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}
.topbar nav a {
  display: flex !important;
  flex: 0 0 auto !important;
  height: auto !important;
  min-height: 0 !important;
  align-items: center !important;
  padding: 0 !important;
  white-space: nowrap !important;
}
.topbar .ticket-link {
  flex: 0 0 auto !important;
  margin: 0 0 0 clamp(8px, 1.2vw, 20px) !important;
  padding: 10px 16px !important;
  border-radius: 30px !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
}
@media (min-width: 801px) and (max-width: 1180px) {
  .topbar {
    gap: 10px !important;
    padding-right: 14px !important;
    padding-left: 14px !important;
  }
  .topbar .logo {
    margin-right: 0 !important;
  }
  .topbar nav {
    gap: clamp(7px, 1vw, 12px) !important;
    font-size: 12px !important;
    letter-spacing: 0.02em !important;
  }
  .topbar .ticket-link {
    margin-left: 0 !important;
    padding: 9px 12px !important;
    font-size: 12px !important;
  }
}
@media (max-width: 800px) {
  .topbar {
    top: 10px !important;
    right: 10px !important;
    left: 10px !important;
    width: auto !important;
    gap: 10px !important;
    padding: 9px 12px !important;
    transform: none !important;
  }
  .topbar .logo {
    flex-basis: 128px !important;
    width: 128px !important;
    height: 38px !important;
    margin: 0 !important;
  }
  .topbar .logo img {
    width: 90px !important;
  }
  .topbar .ticket-link {
    margin: 0 !important;
    padding: 10px 13px !important;
    font-size: 14px !important;
  }
  .topbar nav {
    position: absolute !important;
    z-index: 95 !important;
    top: calc(100% + 8px) !important;
    right: 0 !important;
    left: 0 !important;
    display: flex !important;
    width: auto !important;
    height: auto !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    padding: 6px 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    border: 1px solid var(--ink) !important;
    border-radius: 999px !important;
    background: rgba(246, 241, 237, 0.94) !important;
    box-shadow: 0 8px 30px rgba(21, 21, 26, 0.2) !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    letter-spacing: 0.04em !important;
    white-space: nowrap !important;
    scrollbar-width: none !important;
  }
  .topbar nav a {
    flex: 0 0 auto !important;
    min-width: auto !important;
    min-height: 42px !important;
    justify-content: center !important;
    padding: 0 18px !important;
    border-radius: 999px !important;
    font-size: 14px !important;
  }
}

/* ===== [ABOUT] ===== */
/* Restore the 0911 section-title scale instead of forcing every heading into
   the later reduced size. */
#about .about-copy h1 {
  font-size: clamp(40px, 3.8vw, 54px) !important;
  line-height: 1.08 !important;
}
/* ===== [PROGRAM] ===== */
#program .program-title-kicker,
#program .program-title-main,
.festa-map h2,
.guide h2,
.location h2,
.platforms h2,
.faq h2 {
  font-size: clamp(44px, 4.2vw, 60px) !important;
  line-height: 1.08 !important;
}
/* ===== [ABOUT] ===== */
@media (max-width: 800px) {
  #about .about-copy h1,
  .festa-map h2,
  .guide h2,
  .location h2,
  .platforms h2,
  .faq h2 {
    font-size: clamp(34px, 9vw, 43px) !important;
    line-height: 1.18 !important;
  }
  #about .about-copy h1 {
    line-height: 1.32 !important;
  }
  #program .program-title-kicker,
  #program .program-title-main {
    display: block !important;
    font-size: clamp(38px, 10vw, 48px) !important;
    line-height: 1.18 !important;
    white-space: nowrap !important;
  }
}

/* ===== [FOOTER] ===== */
/* Footer reference layout: three information groups on the first row and the
   copyright on its own lower row. */
@media (min-width: 1101px) {
  .full-footer {
    padding: 0 52px !important;
  }
  .full-footer-inner {
    display: grid !important;
    width: 100% !important;
    max-width: 1540px !important;
    grid-template-columns: 300px 390px minmax(420px, 1fr) !important;
    grid-template-rows: auto auto !important;
    column-gap: 48px !important;
    row-gap: 54px !important;
    align-items: start !important;
    margin: 0 auto !important;
    padding: 64px 0 44px !important;
  }
  .full-footer-brand {
    grid-column: 1 !important;
    grid-row: 1 !important;
    margin: 0 !important;
  }
  .full-footer-info:nth-of-type(2) {
    grid-column: 2 !important;
    grid-row: 1 !important;
    margin: 0 !important;
  }
  .full-footer-info:nth-of-type(3) {
    grid-column: 3 !important;
    grid-row: 1 !important;
    margin: 0 !important;
  }
  .full-footer-inner > small {
    grid-column: 1/-1 !important;
    grid-row: 2 !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: start !important;
  }
}

/* ===== [MAP] ===== */
/* Higher-specificity 0911 heading values, protected from older section rules. */
#map .festa-map-head h2,
#guide .guide-head h2,
#location .location-copy h2,
#platforms .platforms-head h2,
#faq > h2 {
  font-size: clamp(44px, 4.2vw, 60px) !important;
  line-height: 1.08 !important;
}
@media (max-width: 800px) {
  #map .festa-map-head h2,
  #guide .guide-head h2,
  #location .location-copy h2,
  #platforms .platforms-head h2,
  #faq > h2 {
    font-size: clamp(34px, 9vw, 43px) !important;
    line-height: 1.18 !important;
  }
}

/* ===== [PLATFORMS] ===== */
@media (max-width: 800px) {
  #platforms .platform-grid > a:last-child {
    grid-column-start: 1 !important;
    grid-column-end: 2 !important;
    width: auto !important;
    justify-self: stretch !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Final reward presentation override. */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
.guide-event-copy .event-list article > em {
  display: grid !important;
  grid-template-columns: max-content minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 8px 20px !important;
  padding-top: 14px !important;
  padding-bottom: 14px !important;
  background: transparent !important;
}
/* ===== [GUIDE] ===== */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
.guide-event-copy .reward-label {
  display: inline-flex !important;
  align-items: flex-start !important;
  gap: 7px !important;
  margin: 0 !important;
  padding: 4px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.68) !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
  letter-spacing: 0.1em !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label:before,
.guide-event-copy .reward-label:before {
  display: inline-block !important;
  width: 16px !important;
  height: 16px !important;
  flex: 0 0 16px !important;
  background: currentColor !important;
  content: "" !important;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12v10H4V12M2 7h20v5H2zM12 22V7'/%3E%3Cpath d='M12 7H7.5A2.5 2.5 0 1 1 10 4.5L12 7Zm0 0h4.5A2.5 2.5 0 1 0 14 4.5L12 7Z'/%3E%3C/svg%3E")
    center/contain no-repeat !important;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12v10H4V12M2 7h20v5H2zM12 22V7'/%3E%3Cpath d='M12 7H7.5A2.5 2.5 0 1 1 10 4.5L12 7Zm0 0h4.5A2.5 2.5 0 1 0 14 4.5L12 7Z'/%3E%3C/svg%3E")
    center/contain no-repeat !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips,
.guide-event-copy .reward-chips {
  display: flex !important;
  min-width: 0 !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
  gap: 5px 0 !important;
  padding-top: 1px !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
.guide-event-copy .reward-chips > span {
  display: inline !important;
  min-height: 0 !important;
  padding: 3px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 850 !important;
  line-height: 1.45 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span:not(:last-child):after,
.guide-event-copy .reward-chips > span:not(:last-child):after {
  display: inline !important;
  margin: 0 9px !important;
  color: rgba(255, 255, 255, 0.38) !important;
  content: "/" !important;
}
/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > em,
  .guide-event-copy .event-list article > em {
    grid-template-columns: 1fr !important;
    gap: 4px !important;
    align-items: start !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .reward-chips
    > span,
  .guide-event-copy .reward-chips > span {
    font-size: 14px !important;
  }
}

/* ===== [ABOUT] ===== */
/* Final ABOUT spacing adjustment. */
@media (min-width: 801px) {
  #about .about-copy {
    min-height: 560px !important;
    padding: 88px 24px 76px !important;
  }
  #about .intro-facts {
    margin-top: 48px !important;
  }
}
@media (max-width: 800px) {
  #about .about-copy {
    min-height: 500px !important;
    padding: 76px 20px 58px !important;
  }
  #about .intro-facts {
    margin-top: 38px !important;
  }
}
/* ===== [COMMON] ===== */
/* Final visual locks. This file intentionally loads after every historical override. */
:root {
  --section-gutter: clamp(24px, 5vw, 80px);
}
/* ===== [PROGRAM] ===== */
#program,
#map,
#guide,
#platforms,
#faq {
  padding-right: var(--section-gutter) !important;
  padding-left: var(--section-gutter) !important;
}
/* ===== [LOCATION] ===== */
#location .location-copy {
  padding-right: var(--section-gutter) !important;
  padding-left: var(--section-gutter) !important;
}

/* ===== [ABOUT] ===== */
/* ABOUT */
#about .about-copy {
  min-height: 560px !important;
  padding: 88px 24px 76px !important;
}
#about .intro-facts {
  margin-top: 48px !important;
}
html body #about .about-copy:before {
  top: calc(50% + 20px) !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  width: max-content !important;
  max-width: none !important;
  text-align: center !important;
  font-size: clamp(138px, 20vw, 300px) !important;
  transform: translate(-50%, -50%) !important;
}
html body #about .about-copy:after {
  background-image: url("assets/effect_about-dot-pattern.svg") !important;
  opacity: 0.48 !important;
}

/* ===== [PROGRAM] ===== */
/* Shared title/subtitle geometry */
@media (min-width: 801px) {
  html body .section-heading {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: minmax(0, 58vw) minmax(300px, 1fr) !important;
    column-gap: clamp(28px, 3vw, 52px) !important;
    align-items: end !important;
  }
  html body .section-heading > h2,
  html body .section-heading > .program-title-wrap,
  html body .section-subtitle {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }
  html body .section-subtitle {
    justify-self: stretch !important;
  }
}

/* One modal layout system: identical viewport, header, content origin, and text rhythm. */
html body dialog.program-dialog[open] {
  width: min(calc(100vw - 40px), 1600px) !important;
  height: calc(100dvh - 40px) !important;
  max-width: 1600px !important;
  max-height: calc(100dvh - 40px) !important;
  margin: auto !important;
  padding: 0 !important;
}
html body .program-dialog .program-dialog-header {
  display: flex !important;
  height: 150px !important;
  min-height: 150px !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0 52px !important;
}
html body .program-dialog .program-dialog-header h3 {
  margin: 0 !important;
  font-size: clamp(34px, 3vw, 50px) !important;
  line-height: 1 !important;
}
html body .program-dialog .program-dialog-close {
  position: static !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
}
html body .program-dialog .program-dialog-scroll {
  padding: 44px 52px 64px !important;
}
html body .program-dialog .shared-program-section,
html body .program-dialog .shared-program-section > header,
html body .program-dialog .event-intro,
html body .program-dialog .exhibition-intro {
  min-height: 0 !important;
  height: auto !important;
  padding-top: 0 !important;
}
html body .program-dialog .shared-program-section > header,
html body .program-dialog .event-intro,
html body .program-dialog .exhibition-intro {
  display: grid !important;
  gap: 10px !important;
  margin: 0 0 36px !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
  padding-left: 0 !important;
  align-items: start !important;
  text-align: left !important;
}
html body .program-dialog .shared-program-copy,
html body .program-dialog .event-intro,
html body .program-dialog .exhibition-intro {
  font-size: 18px !important;
  line-height: 1.65 !important;
}
html body .program-dialog .shared-program-copy > span,
html body .program-dialog .event-intro > p,
html body .program-dialog .exhibition-intro > p {
  margin: 0 !important;
  padding: 0 !important;
  font-size: inherit !important;
  line-height: inherit !important;
}
html body .program-dialog .shared-program-copy > span {
  margin-bottom: 10px !important;
}
html body .program-dialog .shared-program-copy > span:last-child {
  margin-bottom: 0 !important;
}
@media (max-width: 800px) {
  html body dialog.program-dialog[open] {
    width: calc(100vw - 16px) !important;
    height: calc(100dvh - 16px) !important;
    max-height: calc(100dvh - 16px) !important;
  }
  html body .program-dialog .program-dialog-header {
    height: 92px !important;
    min-height: 92px !important;
    padding: 0 22px !important;
  }
  html body .program-dialog .program-dialog-header h3 {
    font-size: clamp(24px, 7vw, 32px) !important;
  }
  html body .program-dialog .program-dialog-scroll {
    padding: 28px 22px 44px !important;
  }
  html body .program-dialog .shared-program-section > header,
  html body .program-dialog .event-intro,
  html body .program-dialog .exhibition-intro {
    margin-bottom: 28px !important;
  }
  html body .program-dialog .shared-program-copy,
  html body .program-dialog .event-intro,
  html body .program-dialog .exhibition-intro {
    font-size: 15px !important;
    line-height: 1.65 !important;
  }
}

/* ===== [MAP] ===== */
/* 0911 section textures and compact map legend */
#map.festa-map {
  background-color: #f7f4ef !important;
  background-image: url("assets/effect_map-dot-pattern.svg") !important;
  background-size: 12px 12px !important;
}
#map .map-legend {
  background: transparent !important;
}
#map .map-legend li {
  background-color: transparent !important;
}
#map .map-legend li:hover:not(.is-active),
#map .map-legend li:focus-visible:not(.is-active) {
  background-color: rgba(255, 255, 255, 0.46) !important;
}
#map .map-legend li.is-active {
  background-color: rgba(255, 255, 255, 0.78) !important;
}
/* ===== [GUIDE] ===== */
#guide.guide {
  background-image: repeating-linear-gradient(
    135deg,
    transparent 0 7px,
    rgba(21, 21, 25, 0.045) 7px 8px
  ) !important;
}

/* ===== [PROGRAM] ===== */
/* Supplied program and goods artwork */
.shared-program-merch-image {
  margin: 0 !important;
  border: 1px solid #15151a !important;
  background: #fff !important;
}
.shared-program-merch-image img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}

/* The supplied thumbnails are already color-corrected artwork. */
#program .program-card .program-image {
  filter: none !important;
}
#program .program-card:hover .program-image,
#program .program-card:focus-visible .program-image {
  filter: none !important;
}
#program .program-card {
  aspect-ratio: 4/3 !important;
}

/* ===== [PLATFORMS] ===== */
/* Supplied platform SVGs have been optically corrected; size every mark by one shared height. */
#platforms .platform-grid > * .platform-logo-box {
  display: flex !important;
  height: 64px !important;
  align-items: center !important;
  justify-content: center !important;
}
html body #platforms .platform-grid > *:nth-child(n) .platform-logo-box img {
  width: auto !important;
  height: 50px !important;
  max-width: 92% !important;
  max-height: none !important;
  object-fit: contain !important;
}

/* ===== [PROGRAM] ===== */
.program-dialog[data-program="exhibition"] .program-details-body > p {
  width: 100% !important;
  max-width: none !important;
}
.program-dialog[data-program="exhibition"] .exhibition-intro {
  margin: 0 0 22px !important;
}
.program-dialog[data-program="exhibition"] .exhibition-intro p {
  max-width: none !important;
  margin: 0 0 8px !important;
  color: #d1d0d4 !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
}
.program-dialog[data-program="exhibition"] .exhibition-intro p:last-child {
  margin-top: 4px !important;
}
.program-dialog[data-program="exhibition"] .exhibition-intro strong {
  color: #fff !important;
  font-weight: 850 !important;
}
.exhibition-chips button[aria-selected="true"] {
  border-color: var(--purple) !important;
  background: var(--purple) !important;
  color: #fff !important;
}
/* ===== [GUIDE] ===== */
#guide .guide-tab[aria-selected="true"] {
  border-color: var(--purple) !important;
  background: var(--purple) !important;
  color: #fff !important;
}
/* ===== [PROGRAM] ===== */
.exhibition-view-head span {
  background: var(--purple) !important;
  color: #fff !important;
}
.exhibition-gallery {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(180px, 0.92fr);
  gap: 18px;
  align-items: start;
}
.exhibition-feature-wrap {
  min-width: 0;
}
.exhibition-feature {
  min-width: 0;
  margin: 0;
  background: #e5e1dc;
}
.exhibition-feature img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.exhibition-indicators {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  max-height: clamp(360px, 55vh, 660px);
  overflow-y: auto;
  align-content: start;
  padding: 0 6px 0 0;
  scrollbar-color: var(--purple) #34333a;
  scrollbar-width: thin;
}
.exhibition-indicators button {
  display: block;
  width: 100%;
  height: max-content;
  padding: 0;
  overflow: hidden;
  border: 3px solid transparent;
  background: #e5e1dc;
  cursor: pointer;
}
.exhibition-indicators button[aria-pressed="true"] {
  border-color: var(--purple);
}
.exhibition-indicators button:focus-visible {
  outline: 3px solid #15151a;
  outline-offset: 2px;
}
.exhibition-indicators img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.exhibition-feature-wrap > .program-image-notice {
  margin: 16px 0 0 !important;
  color: #aaa9b0 !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(6)
  .event-card-media {
  background: #c72c32 !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(6)
  .event-card-media
  img {
  mix-blend-mode: normal !important;
  object-fit: contain !important;
  filter: brightness(0) saturate(100%) invert(91%) sepia(42%) saturate(504%)
    hue-rotate(2deg) brightness(104%) contrast(101%) !important;
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(n + 4):nth-child(-n + 10)
  .event-card-media
  img {
  mix-blend-mode: normal !important;
}
@media (max-width: 950px) {
  .exhibition-gallery {
    grid-template-columns: minmax(0, 1fr);
  }
  .exhibition-indicators {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-height: none;
    overflow: visible;
    padding: 0;
  }
  .exhibition-indicators button {
    flex: initial;
  }
}

/* ===== [GUIDE] ===== */
/* Dark detail surfaces */
html body .program-dialog,
html body #guide .guide-panel {
  background: #15151a !important;
  color: #fff !important;
}
/* ===== [PROGRAM] ===== */
html body .program-dialog .program-details-body,
html body .program-dialog-header,
html body #guide .guide-panel > .guide-copy,
html body #guide .guide-panel > .shared-program-section,
html body .program-dialog .shared-program-section {
  background: #15151a !important;
  color: #fff !important;
}
/* ===== [HEADER] ===== */
html body .program-dialog-header {
  border-bottom-color: #4d4c55 !important;
}
/* ===== [PROGRAM] ===== */
html body .program-dialog-header h3,
html body .program-dialog-header .program-dialog-close,
html body #guide .guide-panel h3,
html body #guide .guide-panel > .guide-copy > p,
html body .program-dialog .program-details-body > p,
html body .shared-program-section header h3,
html body .shared-program-section header p {
  color: #fff !important;
}
html body .program-dialog[data-program="exhibition"] .program-details-body > p {
  color: #d1d0d4 !important;
}
html body .program-dialog[data-program="exhibition"] .program-image-notice {
  color: #aaa9b0 !important;
}
html body .exhibition-view-head strong {
  color: #fff !important;
}
html body .exhibition-chips button {
  border-color: #aaa9b0 !important;
  color: #fff !important;
}
html body .exhibition-chips button:hover:not([aria-selected="true"]) {
  background: #38373e !important;
}
html body .exhibition-chips button[aria-selected="true"] {
  border-color: var(--purple) !important;
  background: var(--purple) !important;
  color: #fff !important;
}
html body .program-dialog .shared-program-section header p {
  color: #e4e3e8 !important;
}
/* ===== [GUIDE] ===== */
html body #guide .guide-panel .shared-program-section header p {
  color: #e4e3e8 !important;
}
/* ===== [PROGRAM] ===== */
.shared-program-note {
  margin-top: 24px !important;
  color: #ffeb70 !important;
  font-weight: 800 !important;
}

/* Goods detail follows the supplied vertical layout. */
html body .program-dialog[data-program="merch"] .shared-program-section--merch {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0 !important;
}
html
  body
  .program-dialog[data-program="merch"]
  .shared-program-section--merch
  header {
  position: static !important;
  width: 100% !important;
  padding: 4px 0 28px !important;
  text-align: center !important;
}
html
  body
  .program-dialog[data-program="merch"]
  .shared-program-section--merch
  header
  p {
  max-width: none !important;
  margin: 0 !important;
  line-height: 1.75 !important;
}
html
  body
  .program-dialog[data-program="merch"]
  .shared-program-section--merch
  .shared-program-merch-image {
  width: 100% !important;
  margin: 0 !important;
  border: 0 !important;
}
html
  body
  .program-dialog[data-program="merch"]
  .shared-program-section--merch
  .shared-program-merch-image
  img {
  width: 100% !important;
  height: auto !important;
}
.shared-program-merch-caption {
  width: 100%;
  margin: 22px 0 0 !important;
  color: #fff !important;
  text-align: center !important;
  line-height: 1.6 !important;
}
.shared-program-merch-caption strong {
  font-size: clamp(15px, 1.6vw, 20px) !important;
}
.shared-program-merch-caption span {
  color: #aaa9b0 !important;
  font-size: 14px !important;
}
.program-dialog[data-program="event"] .event-intro,
#guide .guide-view-event .event-intro {
  margin: 0 0 28px !important;
  text-align: center !important;
  color: #fff !important;
}
.program-dialog[data-program="event"] .event-intro h4,
#guide .guide-view-event .event-intro h4 {
  margin: 0 0 18px !important;
  color: #fff !important;
  font-size: clamp(24px, 3vw, 34px) !important;
  font-weight: 900 !important;
}
.program-dialog[data-program="event"] .event-intro p,
#guide .guide-view-event .event-intro p {
  margin: 0 0 18px !important;
  color: #e4e3e8 !important;
  line-height: 1.55 !important;
}
.program-dialog[data-program="event"] .event-intro strong,
#guide .guide-view-event .event-intro strong {
  color: #fff !important;
  font-weight: 900 !important;
}

/* Give event descriptions the horizontal space shown in the supplied example. */
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list,
#guide .guide-view-event .event-list {
  width: 100% !important;
  max-width: none !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}
@media (min-width: 701px) {
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article,
  #guide .guide-view-event .event-list article {
    grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.85fr) !important;
  }
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > p,
  #guide .guide-view-event .event-list article > p {
    max-width: 560px !important;
  }
}
.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(-n + 2)
  .event-card-media
  img,
#guide
  .guide-view-event
  .event-list
  article:nth-child(-n + 2)
  .event-card-media
  img {
  object-fit: contain !important;
  mix-blend-mode: normal !important;
}

/* ===== [GUIDE] ===== */
/* Keep text legible inside light ticket cards and timetable cells. */
#guide .ticket-pass,
#guide .ticket-pass-price,
#guide .ticket-pass dl,
#guide .ticket-pass footer {
  color: #15151a !important;
}
#guide .ticket-pass header > strong {
  color: #15151a !important;
}
#guide .ticket-pass.is-all header > strong {
  color: #fff !important;
}
#guide .ticket-pass-price small,
#guide .ticket-pass-price b,
#guide .ticket-pass dd {
  color: #15151a !important;
}
#guide .ticket-pass-price em {
  color: var(--purple) !important;
}
#guide .session-schedule tbody th:not(.daypart),
#guide .session-schedule tbody td {
  color: #15151a !important;
}

/* ===== [FOOTER] ===== */
/* Floating TOP — copied from the 0911 final rules. */
.full-footer-top {
  position: fixed !important;
  z-index: 75;
  top: auto !important;
  right: 26px !important;
  bottom: 26px !important;
  display: block !important;
  width: 78px !important;
  height: 78px !important;
  border: 2px solid #fff !important;
  border-radius: 50%;
  background: #15151a !important;
  box-shadow: 0 0 0 2px #15151a !important;
  color: #fff !important;
  transition:
    transform 0.25s ease,
    background-color 0.2s ease !important;
}
.full-footer-top:before {
  display: none !important;
  content: none !important;
  animation: none !important;
}
.full-footer-top i {
  position: absolute !important;
  top: 43% !important;
  left: 50% !important;
  margin: 0 !important;
  font-size: 28px !important;
  font-style: normal;
  line-height: 1 !important;
  transform: translate(-50%, -50%) !important;
  transform-origin: center !important;
  transition: transform 0.32s ease !important;
}
.full-footer-top span {
  position: absolute;
  right: 0 !important;
  bottom: 10px !important;
  left: 0 !important;
  font-size: 10px !important;
  font-weight: 900;
  line-height: 1;
  text-align: center !important;
  letter-spacing: 0.12em;
}
.full-footer-top:hover,
.full-footer-top:focus-visible {
  border-color: #fff !important;
  background: var(--purple) !important;
  box-shadow: 0 0 0 2px #15151a !important;
  color: #fff !important;
  transform: translateY(-7px) !important;
}
.full-footer-top:hover i,
.full-footer-top:focus-visible i {
  transform: translate(-50%, calc(-50% - 9px)) rotate(90deg) scale(1.16) !important;
}

/* ===== [PLATFORMS] ===== */
@media (max-width: 800px) {
  :root {
    --section-gutter: 24px;
  }
  #about .about-copy {
    min-height: 500px !important;
    padding: 76px 20px 58px !important;
  }
  #about .intro-facts {
    margin-top: 38px !important;
  }
  html body .section-heading {
    display: block !important;
    width: 100% !important;
  }
  html body .section-heading > h2,
  html body .section-heading > .program-title-wrap,
  html body .section-subtitle {
    width: 100% !important;
    max-width: none !important;
  }
  #map .map-legend {
    align-content: start !important;
  }
  #map .map-legend li {
    min-height: 64px !important;
    padding-top: 14px !important;
    padding-bottom: 14px !important;
  }
  #platforms .platform-grid > * .platform-logo-box {
    height: 54px !important;
  }
  html body #platforms .platform-grid > *:nth-child(n) .platform-logo-box img {
    width: auto !important;
    height: 42px !important;
    max-width: 90% !important;
    max-height: none !important;
  }
  .full-footer-top {
    right: 14px !important;
    bottom: 18px !important;
    width: 78px !important;
    height: 78px !important;
  }
  .full-footer-top i {
    top: 43% !important;
    font-size: 28px !important;
  }
  .full-footer-top span {
    bottom: 10px !important;
    font-size: 10px !important;
  }
}

/* ===== [GUIDE] ===== */
/* Keep release information attached to the timetable artwork. */
html body #guide .guide-timetable-image {
  margin-bottom: 0 !important;
}
html body #guide .timetable-guide .guide-release-date {
  position: relative !important;
  z-index: 3 !important;
  margin: -66px 0 38px 18px !important;
  padding: 10px 14px !important;
  font-size: clamp(18px, 1.8vw, 25px) !important;
  transform: rotate(-2deg) !important;
}
html body #guide .guide-timetable-image.is-coming-soon:after {
  font-size: clamp(30px, 3.4vw, 48px) !important;
  background: rgba(15, 15, 20, 0.13) !important;
}

/* ===== [PROGRAM] ===== */
/* Introductory copy reads as one block instead of widely separated paragraphs. */
html body .program-dialog[data-program="exhibition"] .exhibition-intro,
html body .program-dialog[data-program="event"] .event-intro {
  gap: 8px !important;
}
html body .program-dialog[data-program="exhibition"] .exhibition-intro p,
html
  body
  .program-dialog[data-program="exhibition"]
  .exhibition-intro
  p:last-child,
html body .program-dialog[data-program="event"] .event-intro p {
  margin: 0 !important;
}
/* ===== [GUIDE] ===== */
@media (max-width: 800px) {
  html body #guide .timetable-guide .guide-release-date {
    margin: -54px 0 32px 12px !important;
    font-size: 17px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* One scrollbar system for every visible slide rail. */
html body #guide .session-schedule-wrap,
html body #program .program-grid,
html body .program-dialog .program-dialog-scroll,
html body .program-dialog .program-dialog-inner,
html body .program-dialog .exhibition-indicators,
html body .program-dialog .exhibition-chips,
html body .program-dialog .program-modal-gallery,
html body .program-dialog .shared-program-gallery,
html body .ticket-compare,
html body .faq-table-wrap {
  scrollbar-width: thin !important;
  scrollbar-color: var(--purple) #15151a !important;
}
html body #guide .session-schedule-wrap::-webkit-scrollbar,
html body #program .program-grid::-webkit-scrollbar,
html body .program-dialog .program-dialog-scroll::-webkit-scrollbar,
html body .program-dialog .program-dialog-inner::-webkit-scrollbar,
html body .program-dialog .exhibition-indicators::-webkit-scrollbar,
html body .program-dialog .exhibition-chips::-webkit-scrollbar,
html body .program-dialog .program-modal-gallery::-webkit-scrollbar,
html body .program-dialog .shared-program-gallery::-webkit-scrollbar,
html body .ticket-compare::-webkit-scrollbar,
html body .faq-table-wrap::-webkit-scrollbar {
  width: 10px !important;
  height: 10px !important;
  background: #15151a !important;
}
html body #guide .session-schedule-wrap::-webkit-scrollbar-track,
html body #program .program-grid::-webkit-scrollbar-track,
html body .program-dialog .program-dialog-scroll::-webkit-scrollbar-track,
html body .program-dialog .program-dialog-inner::-webkit-scrollbar-track,
html body .program-dialog .exhibition-indicators::-webkit-scrollbar-track,
html body .program-dialog .exhibition-chips::-webkit-scrollbar-track,
html body .program-dialog .program-modal-gallery::-webkit-scrollbar-track,
html body .program-dialog .shared-program-gallery::-webkit-scrollbar-track,
html body .ticket-compare::-webkit-scrollbar-track,
html body .faq-table-wrap::-webkit-scrollbar-track {
  background: #15151a !important;
}
html body #guide .session-schedule-wrap::-webkit-scrollbar-thumb,
html body #program .program-grid::-webkit-scrollbar-thumb,
html body .program-dialog .program-dialog-scroll::-webkit-scrollbar-thumb,
html body .program-dialog .program-dialog-inner::-webkit-scrollbar-thumb,
html body .program-dialog .exhibition-indicators::-webkit-scrollbar-thumb,
html body .program-dialog .exhibition-chips::-webkit-scrollbar-thumb,
html body .program-dialog .program-modal-gallery::-webkit-scrollbar-thumb,
html body .program-dialog .shared-program-gallery::-webkit-scrollbar-thumb,
html body .ticket-compare::-webkit-scrollbar-thumb,
html body .faq-table-wrap::-webkit-scrollbar-thumb {
  border: 2px solid #15151a !important;
  border-radius: 999px !important;
  background: var(--purple) !important;
}

/* ===== [FOOTER] ===== */
/* Footer information columns share the same three-row baseline. */
@media (min-width: 801px) {
  html body .full-footer-info {
    display: grid !important;
    grid-template-rows: 22px 25px 25px !important;
    row-gap: 10px !important;
    align-content: start !important;
    font-size: 16px !important;
    line-height: 25px !important;
  }
  html body .full-footer-info > strong {
    height: 22px !important;
    margin: 0 !important;
    font-size: 16px !important;
    line-height: 22px !important;
  }
  html body .full-footer-info > a {
    display: block !important;
    height: 25px !important;
    line-height: 25px !important;
  }
  html body .full-footer-info:has(.footer-organizer-logos) {
    grid-template-rows: 22px auto !important;
  }
  html body .full-footer-info .footer-organizer-logos {
    display: grid !important;
    width: max-content !important;
    height: auto !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: 25px 25px !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 !important;
  }
  html body .full-footer-info .footer-organizer-logos .footer-logo-kidari,
  html body .full-footer-info .footer-organizer-logos .footer-logo-lezhin {
    display: block !important;
    width: auto !important;
    height: 25px !important;
    margin: 0 !important;
    object-position: left center !important;
  }
}

/* ===== [PROGRAM] ===== */
/* All program detail bodies start and read like the exhibition detail. */
html body .program-dialog .shared-program-section {
  display: block !important;
  min-height: 0 !important;
  height: auto !important;
}
html body .program-dialog .shared-program-section > header,
html body .program-dialog .event-intro,
html body .program-dialog .exhibition-intro {
  display: grid !important;
  min-height: 0 !important;
  height: auto !important;
  align-content: start !important;
  align-items: start !important;
  gap: 10px !important;
  margin: 0 0 28px !important;
  padding: 0 !important;
  text-align: left !important;
}
html body .program-dialog .shared-program-copy,
html body .program-dialog .shared-program-copy > span,
html body .program-dialog .event-intro,
html body .program-dialog .event-intro > p,
html body .program-dialog .exhibition-intro,
html body .program-dialog .exhibition-intro > p {
  font-size: 16px !important;
  line-height: 1.6 !important;
}
html body .program-dialog .shared-program-copy > span,
html body .program-dialog .event-intro > p,
html body .program-dialog .exhibition-intro > p {
  margin: 0 !important;
  padding: 0 !important;
}

/* Program titles use the display face; body copy is rendered without paragraph tags. */
html body .program-dialog .program-dialog-header h3 {
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: -0.025em !important;
}
html body .program-dialog .program-body-text {
  margin: 0 !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
}
html body .program-dialog .event-intro > .program-body-text,
html body .program-dialog .exhibition-intro > .program-body-text {
  padding: 0 !important;
}

/* Rewards sit directly below copy, with label over values and no separate box. */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
html body #guide .guide-event-copy .event-list article > em {
  width: 88% !important;
  margin: 18px 0 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 7px !important;
  border: 0 !important;
  background: transparent !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > .program-body-text {
  width: 88% !important;
  max-width: none !important;
  margin: 30px 0 0 !important;
  color: #fff !important;
  font-size: 16px !important;
  line-height: 1.55 !important;
  letter-spacing: -0.025em !important;
}
/* ===== [GUIDE] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
html body #guide .guide-event-copy .reward-label {
  display: inline-flex !important;
  width: max-content !important;
  margin: 0 !important;
  padding: 0 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips,
html body #guide .guide-event-copy .reward-chips {
  display: flex !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > em,
  html body #guide .guide-event-copy .event-list article > em {
    width: 100% !important;
    margin: 16px 0 0 !important;
    padding: 0 !important;
  }
}

/* ===== [GUIDE] ===== */
/* GUIDE content rhythm: every lead-to-visual and visual-to-detail interval uses one scale. */
html body #guide {
  --guide-block-gap: 44px;
}
html body #guide .ticket-guide > p {
  margin-bottom: var(--guide-block-gap) !important;
}
html body #guide .ticket-pass-grid {
  margin-top: 0 !important;
  margin-bottom: var(--guide-block-gap) !important;
}
html body #guide .timetable-guide .shared-program-coming {
  margin: 0 auto var(--guide-block-gap) !important;
}
html body #guide .guide-event-copy .event-intro {
  margin-bottom: var(--guide-block-gap) !important;
}
html body #guide .guide-event-copy .event-list {
  margin-top: 0 !important;
}
html body #guide .entry-guide-head {
  margin-bottom: var(--guide-block-gap) !important;
}
html body #guide .guide-view-entry .entry-guide {
  display: flex !important;
  flex-direction: column !important;
}
html body #guide .guide-view-entry .entry-guide-head {
  order: 1 !important;
}
html body #guide .guide-view-entry .entry-route-map {
  order: 2 !important;
  width: min(100%, 1180px) !important;
  max-width: 1180px !important;
  align-self: center !important;
  margin: 0 auto var(--guide-block-gap) !important;
  border: 0 !important;
}
html body #guide .guide-view-entry .entry-route-map .guide-reference-image {
  display: block !important;
  width: 100% !important;
  max-width: 1180px !important;
  height: auto !important;
  margin: 0 auto !important;
}
html body #guide .guide-view-entry .entry-guide-details {
  order: 3 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  border-top: 0 !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 12px !important;
}
html body #guide .entry-guide-details > section,
html body #guide .entry-guide-details > section:nth-child(n) {
  --route-color: #166c43;
  width: 100% !important;
  max-width: none !important;
  display: grid !important;
  grid-template-columns: 56px minmax(0, 1fr) !important;
  grid-template-rows: auto auto auto !important;
  gap: 8px 18px !important;
  padding: 22px 24px !important;
  border: 1px solid color-mix(in srgb, var(--route-color) 58%, transparent) !important;
  border-left: 8px solid var(--route-color) !important;
  background: color-mix(in srgb, var(--route-color) 9%, #15151a) !important;
}
html body #guide .entry-guide-details > section:nth-child(2) {
  --route-color: #ef4f7a;
}
html body #guide .entry-guide-details > section:nth-child(3) {
  --route-color: #ef7d32;
}
html body #guide .entry-guide-details > section:nth-child(4) {
  --route-color: #8a4b2a;
}
html body #guide .entry-guide-details > section > b {
  display: grid !important;
  grid-column: 1 !important;
  grid-row: 1/4 !important;
  width: 42px !important;
  height: 42px !important;
  place-items: center !important;
  margin: 0 !important;
  border-radius: 50% !important;
  background: var(--route-color) !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 900 !important;
}
html body #guide .entry-guide-details > section > strong {
  grid-column: 2 !important;
  margin: 0 !important;
  color: var(--route-color) !important;
  font-size: 21px !important;
  line-height: 1.35 !important;
}
html body #guide .entry-guide-details > section > p,
html body #guide .entry-guide-details > section > em {
  grid-column: 2 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #f0edf2 !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.7 !important;
}
html body #guide .entry-guide-details > section > em {
  margin-top: 2px !important;
  color: #c9c5cc !important;
  font-style: normal !important;
}

/* ===== [LOCATION] ===== */
/* Location copy ends close to its action; the map begins without a dead purple band. */
html body #location .location-copy {
  align-content: start !important;
  padding-top: clamp(90px, 8vw, 140px) !important;
  padding-right: max(6vw, 30px) !important;
  padding-bottom: 38px !important;
  padding-left: max(6vw, 30px) !important;
}
html body #location .location-action {
  margin-bottom: 0 !important;
}

/* ===== [GUIDE] ===== */
@media (max-width: 800px) {
  html body #guide {
    --guide-block-gap: 28px;
  }
  html body #guide .entry-guide-details > section,
  html body #guide .entry-guide-details > section:nth-child(n) {
    grid-template-columns: 44px minmax(0, 1fr) !important;
    padding: 18px 16px !important;
    gap: 6px 12px !important;
  }
  html body #guide .entry-guide-details > section > b {
    width: 34px !important;
    height: 34px !important;
    font-size: 12px !important;
  }
  html body #guide .entry-guide-details > section > strong {
    font-size: 19px !important;
  }
  html body #guide .entry-guide-details > section > p,
  html body #guide .entry-guide-details > section > em {
    font-size: 15px !important;
  }
  html body #location .location-copy {
    padding-bottom: 26px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Program cards need a little more breathing room; card geometry stays unchanged. */
html body #program .program-grid {
  gap: 18px !important;
}
@media (max-width: 800px) {
  html body #program .program-grid {
    gap: 16px !important;
  }
}

/* ===== [GUIDE] ===== */
/* TRUE EOF LOCKS — verified values; keep after every historical rule above. */
html body #guide .guide-tabs,
html body #guide .guide-tabs-wrap {
  border-bottom-width: 1px !important;
}
html body #guide .guide-panel {
  border: 1px solid #5b5961 !important;
  border-top: 0 !important;
  outline: 0 !important;
}
html body #guide .session-schedule {
  border: 1px solid #c9c7c2 !important;
  border-collapse: collapse !important;
}
html body #guide .session-schedule th,
html body #guide .session-schedule td {
  border: 1px solid #c9c7c2 !important;
}

/* ===== [FOOTER] ===== */
html body .full-footer-info .footer-organizer-logos {
  gap: 4px !important;
  row-gap: 4px !important;
  column-gap: 4px !important;
  margin-top: 0 !important;
}

/* ===== [PROGRAM] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
html body #guide .guide-event-copy .event-list article > strong,
html body #guide .guide-event-copy .event-list article > p {
  width: 100% !important;
}
/* ===== [GUIDE] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
html body #guide .guide-event-copy .event-list article > p,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
html body #guide .guide-event-copy .reward-chips > span {
  font-size: 16px !important;
}
/* ===== [PROGRAM] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
html body #guide .guide-event-copy .event-list article > em {
  margin-top: auto !important;
  margin-bottom: 0 !important;
}

/* ===== [LOCATION] ===== */
@media (min-width: 801px) {
  html body #location .location-copy {
    padding-bottom: clamp(90px, 8vw, 140px) !important;
  }
}
/* ===== [FOOTER] ===== */
@media (max-width: 800px) {
  html body .full-footer-info .footer-organizer-logos {
    gap: 4px !important;
    row-gap: 4px !important;
  }
  html body #location .location-copy {
    padding-bottom: 26px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Shared modal spacing must be the last rule in the file. */
html body .program-dialog .program-dialog-header {
  height: 96px !important;
  min-height: 96px !important;
  padding: 0 52px !important;
}
html body .program-dialog .program-dialog-scroll {
  padding: 28px 52px 56px !important;
}
html body .program-dialog .shared-program-section > header,
html body .program-dialog .event-intro,
html body .program-dialog .exhibition-intro {
  margin-top: 0 !important;
  margin-bottom: 28px !important;
}
@media (max-width: 800px) {
  html body .program-dialog .program-dialog-header {
    height: 78px !important;
    min-height: 78px !important;
    padding: 0 22px !important;
  }
  html body .program-dialog .program-dialog-scroll {
    padding: 22px 22px 40px !important;
  }
  html body .program-dialog .shared-program-section > header,
  html body .program-dialog .event-intro,
  html body .program-dialog .exhibition-intro {
    margin-bottom: 22px !important;
  }
}

/* ===== [GUIDE] ===== */
/* Entry/exit guide: compact artwork spacing and unboxed information rows. */
html body #guide .guide-view-entry .entry-guide-head {
  margin-bottom: 20px !important;
}
html body #guide .guide-view-entry .entry-route-map {
  width: min(100%, 800px) !important;
  max-width: 800px !important;
  margin: 0 auto 24px !important;
  align-self: center !important;
  background: transparent !important;
  border: 0 !important;
}
html body #guide .guide-view-entry .entry-route-map .guide-reference-image {
  display: block !important;
  width: 100% !important;
  max-width: 800px !important;
  height: auto !important;
  margin: 0 auto !important;
}
html body #guide .guide-view-entry .entry-guide-details {
  width: min(100%, 1180px) !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
  gap: 0 !important;
}
html body #guide .guide-view-entry .entry-guide-details > section,
html body #guide .guide-view-entry .entry-guide-details > section:nth-child(n) {
  background: transparent !important;
  border: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-bottom: 1px solid #5b5961 !important;
  box-shadow: none !important;
}
html body #guide .guide-view-entry .entry-guide-details > section:first-child {
  --route-color: #ff2a2f !important;
}
html
  body
  #guide
  .guide-view-entry
  .entry-guide-details
  > section:first-child
  > b {
  background: #ff2a2f !important;
}
html body #guide .guide-view-entry .route-in {
  stroke: #ff2a2f !important;
}
html body #guide .guide-view-entry .route-label-in rect {
  fill: #ff2a2f !important;
}
html body #guide .guide-view-entry marker#route-in-arrow path {
  fill: #ff2a2f !important;
}
html body #guide .guide-view-entry .entry-guide-details > section:last-child {
  border-bottom: 0 !important;
}

@media (max-width: 800px) {
  html body #guide .guide-view-entry .entry-guide-head {
    margin-bottom: 14px !important;
  }
  html body #guide .guide-view-entry .entry-route-map {
    margin-bottom: 18px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Mobile PROGRAM is a four-card vertical list, not a horizontal carousel. */
@media (max-width: 800px) {
  html body #program .program-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 16px !important;
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    scroll-snap-type: none !important;
  }
  html body #program .program-card,
  html body #program .program-card:nth-child(n),
  html body #program .program-card:last-child {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: none !important;
    margin: 0 !important;
    scroll-snap-align: none !important;
  }
  html body #program .program-grid::-webkit-scrollbar {
    display: none !important;
  }
}

/* ===== [GUIDE] ===== */
/* Timetable rules use one neutral border tone; no isolated bright top edge. */
html body #guide .session-schedule {
  border: 1px solid #5b5961 !important;
  border-collapse: collapse !important;
}
html body #guide .session-schedule th,
html body #guide .session-schedule td {
  border: 1px solid #5b5961 !important;
}

/* ===== [PROGRAM] ===== */
/* Exhibition thumbnails stay in one horizontal scroll rail under the feature image. */
html body .program-dialog[data-program="exhibition"] .exhibition-gallery {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 16px !important;
}
html body .program-dialog[data-program="exhibition"] .exhibition-indicators {
  display: flex !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  gap: 12px !important;
  padding: 0 0 10px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  align-items: flex-start !important;
  scroll-snap-type: x proximity !important;
}
html
  body
  .program-dialog[data-program="exhibition"]
  .exhibition-indicators
  button {
  width: 220px !important;
  min-width: 220px !important;
  flex: 0 0 220px !important;
  scroll-snap-align: start !important;
}
@media (max-width: 800px) {
  html body .program-dialog[data-program="exhibition"] .exhibition-indicators {
    gap: 9px !important;
  }
  html
    body
    .program-dialog[data-program="exhibition"]
    .exhibition-indicators
    button {
    width: 142px !important;
    min-width: 142px !important;
    flex-basis: 142px !important;
  }
}

/* Responsive gallery: side-by-side when wide, stacked with a horizontal rail when narrow. */
@media (min-width: 951px) {
  html body .program-dialog[data-program="exhibition"] .exhibition-gallery {
    display: grid !important;
    grid-template-columns: minmax(0, 2fr) minmax(240px, 0.92fr) !important;
    gap: 18px !important;
    align-items: start !important;
  }
  html body .program-dialog[data-program="exhibition"] .exhibition-indicators {
    display: grid !important;
    width: 100% !important;
    height: calc(var(--exhibition-thumb-row, 150px) * 4.35 + 40px) !important;
    max-height: none !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 0 6px 0 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    scroll-snap-type: none !important;
  }
  html
    body
    .program-dialog[data-program="exhibition"]
    .exhibition-indicators
    button {
    width: 100% !important;
    min-width: 0 !important;
    flex: auto !important;
    scroll-snap-align: none !important;
  }
}
@media (max-width: 950px) {
  html body .program-dialog[data-program="exhibition"] .exhibition-gallery {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 16px !important;
  }
  html body .program-dialog[data-program="exhibition"] .exhibition-indicators {
    display: flex !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    gap: 9px !important;
    padding: 0 0 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x proximity !important;
  }
  html
    body
    .program-dialog[data-program="exhibition"]
    .exhibition-indicators
    button {
    width: 142px !important;
    min-width: 142px !important;
    flex: 0 0 142px !important;
    scroll-snap-align: start !important;
  }
}

/* Four program detail headers share the same compact spacing. */
html body .program-dialog .program-dialog-header {
  height: 96px !important;
  min-height: 96px !important;
  padding: 0 52px !important;
}
html body .program-dialog .program-dialog-scroll {
  padding: 28px 52px 56px !important;
}
html body .program-dialog .shared-program-section > header,
html body .program-dialog .event-intro,
html body .program-dialog .exhibition-intro {
  margin-top: 0 !important;
  margin-bottom: 28px !important;
}
@media (max-width: 800px) {
  html body .program-dialog .program-dialog-header {
    height: 78px !important;
    min-height: 78px !important;
    padding: 0 22px !important;
  }
  html body .program-dialog .program-dialog-scroll {
    padding: 22px 22px 40px !important;
  }
  html body .program-dialog .shared-program-section > header,
  html body .program-dialog .event-intro,
  html body .program-dialog .exhibition-intro {
    margin-bottom: 22px !important;
  }
}

/* Identical compact spacing for all four program detail modals. */
html body .program-dialog .program-dialog-header {
  height: 96px !important;
  min-height: 96px !important;
  padding: 0 52px !important;
}
html body .program-dialog .program-dialog-scroll {
  padding: 28px 52px 56px !important;
}
html body .program-dialog .shared-program-section > header,
html body .program-dialog .event-intro,
html body .program-dialog .exhibition-intro {
  margin-top: 0 !important;
  margin-bottom: 28px !important;
}
@media (max-width: 800px) {
  html body .program-dialog .program-dialog-header {
    height: 78px !important;
    min-height: 78px !important;
    padding: 0 22px !important;
  }
  html body .program-dialog .program-dialog-scroll {
    padding: 22px 22px 40px !important;
  }
  html body .program-dialog .shared-program-section > header,
  html body .program-dialog .event-intro,
  html body .program-dialog .exhibition-intro {
    margin-bottom: 22px !important;
  }
}

/* ===== [GUIDE] ===== */
/* 261005 final corrections: shared guide structure, single border, anchored rewards. */
html body #guide .guide-panel {
  border: 1px solid #5b5961 !important;
  border-top: 0 !important;
  outline: 0 !important;
}
html body #guide .guide-view-title {
  display: block !important;
  margin: 0 0 36px !important;
  color: #fff !important;
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-size: clamp(34px, 3vw, 48px) !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.035em !important;
}
/* ===== [PROGRAM] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
html body #guide .guide-event-copy .event-list article > em {
  margin-top: auto !important;
  margin-bottom: 0 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
html body #guide .guide-event-copy .event-list article > strong,
html body #guide .guide-event-copy .event-list article > p {
  width: 88% !important;
}
/* ===== [GUIDE] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
html body #guide .guide-event-copy .event-list article > p,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
html body #guide .guide-event-copy .reward-chips > span {
  font-size: 16px !important;
}

/* ===== [LOCATION] ===== */
/* Keep the compact button-to-map spacing only in the stacked mobile layout. */
html body #location .location-copy {
  padding-bottom: clamp(90px, 8vw, 140px) !important;
}
/* ===== [GUIDE] ===== */
@media (max-width: 800px) {
  html body #guide .guide-view-title {
    margin-bottom: 28px !important;
    font-size: 32px !important;
  }
  html body #location .location-copy {
    padding-bottom: 26px !important;
  }
}

/* One seam between guide tabs and content; a closed outline around the schedule table. */
html body #guide .guide-panel {
  border-top-width: 0 !important;
}
html body #guide .session-schedule {
  border: 1px solid #c9c7c2 !important;
  border-collapse: collapse !important;
}
html body #guide .session-schedule th,
html body #guide .session-schedule td {
  border: 1px solid #c9c7c2 !important;
}

/* ===== [FOOTER] ===== */
/* Match the visible vertical rhythm of organizer marks to the contact values. */
html body .full-footer-info .footer-organizer-logos {
  gap: 4px !important;
  row-gap: 4px !important;
  margin-top: 0 !important;
}

/* ===== [PROGRAM] ===== */
/* Compact, identical detail headers across all program modals. */
html body .program-dialog .program-dialog-header {
  height: 108px !important;
  min-height: 108px !important;
  padding: 0 52px !important;
}
@media (max-width: 800px) {
  html body .program-dialog .program-dialog-header {
    height: 84px !important;
    min-height: 84px !important;
    padding: 0 22px !important;
  }
}

/* ===== [FOOTER] ===== */
/* Footer: preserve label-to-first-value spacing; values themselves use a 4px rhythm. */
html body .full-footer-info {
  gap: 4px !important;
  row-gap: 4px !important;
}
html body .full-footer-info > strong {
  margin-bottom: 6px !important;
}
html body .full-footer-info .footer-organizer-logos {
  gap: 4px !important;
  row-gap: 4px !important;
  column-gap: 4px !important;
}
@media (min-width: 801px) {
  html body .full-footer-info {
    grid-template-rows: 28px 25px 25px !important;
    row-gap: 4px !important;
  }
  html body .full-footer-info > strong {
    margin-bottom: 0 !important;
  }
  html body .full-footer-info:has(.footer-organizer-logos) {
    grid-template-rows: 28px auto !important;
    row-gap: 4px !important;
  }
  html body .full-footer-info .footer-organizer-logos {
    grid-template-rows: 25px 25px !important;
    row-gap: 4px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Shared stage coming-soon caption and organizer-logo spacing. */
html body #guide .timetable-guide .shared-program-coming figcaption,
html
  body
  .program-dialog:is([data-program="stage"], [data-program="merch"])
  .shared-program-coming
  figcaption {
  display: flex !important;
  width: min(90%, 620px) !important;
  max-width: 90% !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 18px !important;
  text-align: center !important;
  white-space: normal !important;
}
html body #guide .timetable-guide .shared-program-coming figcaption > span,
html
  body
  .program-dialog:is([data-program="stage"], [data-program="merch"])
  .shared-program-coming
  figcaption
  > span {
  color: #fff !important;
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-size: clamp(30px, 3.7vw, 52px) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: 0.01em !important;
}
html body #guide .timetable-guide .shared-program-coming figcaption > strong,
html
  body
  .program-dialog:is([data-program="stage"], [data-program="merch"])
  .shared-program-coming
  figcaption
  > strong {
  display: block !important;
  padding: 9px 14px !important;
  background: #ffed75 !important;
  color: #15151a !important;
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-size: clamp(19px, 2vw, 28px) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: -0.025em !important;
  transform: rotate(-3deg) !important;
}
/* ===== [FOOTER] ===== */
html body .footer-organizer-logos {
  gap: 14px !important;
}

/* ===== [GUIDE] ===== */
/* Final session table scale: desktop remains full-size; only mobile may scroll. */
@media (min-width: 801px) {
  html body #guide .session-schedule {
    width: 100% !important;
    min-width: 100% !important;
    table-layout: fixed !important;
  }
  html body #guide .session-schedule th,
  html body #guide .session-schedule td {
    min-height: 68px !important;
    padding: 18px 14px !important;
    font-size: clamp(16px, 1.2vw, 20px) !important;
    line-height: 1.35 !important;
  }
  html body #guide .session-schedule thead th {
    font-size: clamp(17px, 1.3vw, 21px) !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Final event-card UI: plain reward text, compact event label, broader copy. */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > small,
html body #guide .guide-event-copy .event-list article > small {
  align-self: flex-start !important;
  width: max-content !important;
  max-width: none !important;
  min-width: 0 !important;
  padding: 7px 11px !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
html body #guide .guide-event-copy .event-list article > strong,
html body #guide .guide-event-copy .event-list article > p {
  width: 74% !important;
  max-width: 680px !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
html body #guide .guide-event-copy .event-list article > em {
  display: flex !important;
  grid-template-columns: none !important;
  align-items: center !important;
  gap: 14px !important;
}
/* ===== [GUIDE] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
html body #guide .guide-event-copy .reward-label {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 !important;
  line-height: 1 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-icon,
html body #guide .guide-event-copy .reward-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 0 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips,
html body #guide .guide-event-copy .reward-chips {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 5px 10px !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
html body #guide .guide-event-copy .reward-chips > span {
  display: inline !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span:not(:last-child):after,
html body #guide .guide-event-copy .reward-chips > span:not(:last-child):after {
  display: inline !important;
  margin-left: 10px !important;
  content: "/" !important;
  opacity: 0.62 !important;
}
/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > strong,
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > p,
  html body #guide .guide-event-copy .event-list article > strong,
  html body #guide .guide-event-copy .event-list article > p {
    width: 82% !important;
  }
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > em,
  html body #guide .guide-event-copy .event-list article > em {
    align-items: flex-start !important;
    flex-direction: column !important;
  }
}

/* ===== [GUIDE] ===== */
/* Final user-requested alignment pass. */
html body #guide .guide-timetable-image {
  border: 0 !important;
  background: transparent !important;
}
html body #guide .guide-timetable-image.is-coming-soon:after {
  color: #fff !important;
  font-size: clamp(28px, 3.2vw, 46px) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.72) !important;
}
html body #guide .timetable-guide .guide-release-date {
  margin-bottom: 28px !important;
  padding: 10px 14px !important;
  border: 0 !important;
  background: #ffed75 !important;
  color: #15151a !important;
  font-size: clamp(19px, 2vw, 28px) !important;
  transform: rotate(-3deg) !important;
}

/* Ticket Concept A from ticket-concepts.html, adapted to the existing content. */
html body #guide .ticket-pass-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 40px !important;
  margin: 34px 0 54px !important;
}
html body #guide .ticket-pass {
  display: flex !important;
  min-width: 0 !important;
  flex-direction: column !important;
  overflow: visible !important;
  border: 2px solid #15151a !important;
  background: #fff !important;
  box-shadow: 10px 10px 0 #6464e6 !important;
}
/* ===== [PROGRAM] ===== */
html body #guide .ticket-pass + .ticket-pass {
  border: 2px solid #15151a !important;
}
/* ===== [GUIDE] ===== */
html body #guide .ticket-pass header {
  min-height: 170px !important;
  padding: 38px !important;
  border-top: 0 !important;
  background: #fff !important;
  color: #15151a !important;
}
html body #guide .ticket-pass.is-all header {
  border-top: 10px solid #ffed75 !important;
  background: #6464e6 !important;
  color: #fff !important;
}
html body #guide .ticket-pass header > strong {
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-size: clamp(42px, 4vw, 62px) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
}
html body #guide .ticket-pass-price {
  display: flex !important;
  min-height: 138px !important;
  align-items: center !important;
  gap: 16px !important;
  padding: 26px 38px !important;
  border-block: 1px solid #cbc6bf !important;
  background: #f0ece6 !important;
}
html body #guide .ticket-pass-price b {
  font-size: 42px !important;
}
html body #guide .ticket-pass dl {
  padding: 8px 38px !important;
}
html body #guide .ticket-pass footer {
  margin-top: auto !important;
  padding: 22px 38px !important;
  border-top: 1px solid #cbc6bf !important;
  background: #fff !important;
}
@media (max-width: 800px) {
  html body #guide .ticket-pass-grid {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  html body #guide .ticket-pass header {
    min-height: 0 !important;
    padding: 26px 22px !important;
  }
  html body #guide .ticket-pass-price {
    min-height: 0 !important;
    padding: 20px 22px !important;
  }
  html body #guide .ticket-pass-price b {
    font-size: 36px !important;
  }
  html body #guide .ticket-pass dl {
    padding: 8px 22px !important;
  }
  html body #guide .ticket-pass footer {
    padding: 18px 22px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Program thumbnails use the same Taegothic title face as their detail views. */
html body #program .program-card h3,
html body #program .program-card .program-card-copy h3,
html body #program .program-card .program-copy h3 {
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: -0.025em !important;
}

/* ===== [GUIDE] ===== */
/* Guide subheads follow the FAQ-question typography; terminal rows have no trailing rule. */
html body #guide .entry-guide-details > section > strong,
html body #guide .notice-group > strong,
html body #guide .guide-copy > h3:not(:first-child) {
  color: #fff !important;
  font-family: "Noto Sans KR", "Apple SD Gothic Neo", sans-serif !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  letter-spacing: -0.025em !important;
}
html body #guide .entry-guide-details > section:last-child,
html body #guide .notice-group:last-child {
  border-bottom: 0 !important;
}

/* ===== [HEADER] ===== */
/* Preserve all eight desktop nav items with readable separation. */
@media (min-width: 801px) {
  html body .topbar nav {
    gap: clamp(8px, 1vw, 18px) !important;
    font-size: clamp(11px, 0.84vw, 14px) !important;
    letter-spacing: 0.025em !important;
  }
  html body .topbar nav a {
    padding-inline: 3px !important;
  }
}

/* ===== [FOOTER] ===== */
/* Footer spacing requested in the supplied reference. */
@media (max-width: 800px) {
  html body .full-footer-brand + .full-footer-info {
    margin-top: 20px !important;
  }
  html body .footer-organizer-logos {
    gap: 14px !important;
  }
  html body .full-footer-inner > small {
    margin-top: 20px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* One event-card component is shared by PROGRAM detail and GUIDE event. */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list,
html body #guide .guide-event-copy .event-list {
  display: grid !important;
  grid-auto-rows: auto !important;
  align-items: stretch !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article,
html body #guide .guide-event-copy .event-list article {
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 36px 30px 0 !important;
  border: 0 !important;
  outline: 0 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > small,
html body #guide .guide-event-copy .event-list article > small {
  width: max-content !important;
  max-width: calc(100% - 60px) !important;
  margin: 0 0 16px !important;
  padding: 7px 10px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: rgba(21, 21, 26, 0.3) !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: 0.12em !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong,
html body #guide .guide-event-copy .event-list article > strong {
  width: 78% !important;
  max-width: none !important;
  margin: 0 !important;
  font-size: clamp(34px, 2.75vw, 48px) !important;
  line-height: 1.08 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
html body #guide .guide-event-copy .event-list article > p {
  width: 78% !important;
  max-width: none !important;
  margin: 30px 0 0 !important;
  font-size: clamp(18px, 1.35vw, 22px) !important;
  line-height: 1.55 !important;
  letter-spacing: -0.025em !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
html body #guide .guide-event-copy .event-list article > em {
  width: calc(100% + 60px) !important;
  margin: 30px -30px 0 !important;
  padding: 15px 30px 14px !important;
  display: grid !important;
  grid-template-columns: max-content minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 10px 24px !important;
  border: 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.55) !important;
  background: rgba(21, 21, 26, 0.18) !important;
}
/* ===== [GUIDE] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
html body #guide .guide-event-copy .reward-label {
  display: inline-flex !important;
  align-items: center !important;
  align-self: start !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 3px 0 !important;
  color: rgba(255, 255, 255, 0.82) !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 22px !important;
  letter-spacing: 0.11em !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label
  .reward-icon,
html body #guide .guide-event-copy .reward-label .reward-icon,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label
  svg,
html body #guide .guide-event-copy .reward-label svg {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
  flex: 0 0 22px !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips,
html body #guide .guide-event-copy .reward-chips {
  display: flex !important;
  min-width: 0 !important;
  flex-wrap: wrap !important;
  align-content: flex-start !important;
  align-items: flex-start !important;
  gap: 2px 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
html body #guide .guide-event-copy .reward-chips > span {
  display: inline !important;
  min-height: 0 !important;
  padding: 3px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span:not(:last-child):after,
html body #guide .guide-event-copy .reward-chips > span:not(:last-child):after {
  display: inline !important;
  margin: 0 10px !important;
  color: rgba(255, 255, 255, 0.42) !important;
  content: "/" !important;
}
html body #guide .guide-event-copy .event-list article {
  border: 0 !important;
  outline: 0 !important;
}

/* GUIDE timetable uses the exact STAGE & LIVE coming-soon figure and conceals its unreleased text. */
html body #guide .timetable-guide .shared-program-section--stage header {
  display: none !important;
}
/* ===== [PROGRAM] ===== */
html body #guide .timetable-guide .shared-program-coming img,
html
  body
  .program-dialog:is([data-program="stage"], [data-program="merch"])
  .shared-program-coming
  img {
  filter: blur(7px) brightness(0.42) !important;
  transform: scale(1.018) !important;
}
html body #guide .timetable-guide .shared-program-coming:after,
html
  body
  .program-dialog:is([data-program="stage"], [data-program="merch"])
  .shared-program-coming:after {
  position: absolute !important;
  z-index: 1 !important;
  inset: 0 !important;
  background: rgba(21, 21, 26, 0.28) !important;
  content: "" !important;
  pointer-events: none !important;
}
html body #guide .timetable-guide .shared-program-coming figcaption,
html
  body
  .program-dialog:is([data-program="stage"], [data-program="merch"])
  .shared-program-coming
  figcaption {
  z-index: 2 !important;
}

@media (max-width: 800px) {
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article,
  html body #guide .guide-event-copy .event-list article {
    min-height: 0 !important;
    padding: 26px 20px 0 !important;
  }
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > strong,
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > p,
  html body #guide .guide-event-copy .event-list article > strong,
  html body #guide .guide-event-copy .event-list article > p {
    width: 86% !important;
  }
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > strong,
  html body #guide .guide-event-copy .event-list article > strong {
    font-size: clamp(30px, 9vw, 40px) !important;
  }
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > p,
  html body #guide .guide-event-copy .event-list article > p {
    margin-top: 22px !important;
    font-size: 17px !important;
  }
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > em,
  html body #guide .guide-event-copy .event-list article > em {
    width: calc(100% + 40px) !important;
    grid-template-columns: 1fr !important;
    gap: 5px !important;
    margin: 24px -20px 0 !important;
    padding: 13px 20px 12px !important;
  }
}

/* ===== [GUIDE] ===== */
/* True final lock: cohesive release notice and compact modal introductions. */
html body #guide .guide-timetable-image {
  margin-bottom: 0 !important;
}
html body #guide .timetable-guide .guide-release-date {
  position: relative !important;
  z-index: 3 !important;
  margin: -66px 0 38px 18px !important;
  padding: 10px 14px !important;
  font-size: clamp(18px, 1.8vw, 25px) !important;
  transform: rotate(-2deg) !important;
}
html body #guide .guide-timetable-image.is-coming-soon:after {
  font-size: clamp(30px, 3.4vw, 48px) !important;
  background: rgba(15, 15, 20, 0.13) !important;
}
/* ===== [PROGRAM] ===== */
html body .program-dialog[data-program="exhibition"] .exhibition-intro,
html body .program-dialog[data-program="event"] .event-intro {
  gap: 8px !important;
}
html body .program-dialog[data-program="exhibition"] .exhibition-intro p,
html
  body
  .program-dialog[data-program="exhibition"]
  .exhibition-intro
  p:last-child,
html body .program-dialog[data-program="event"] .event-intro p {
  margin: 0 !important;
}
/* ===== [GUIDE] ===== */
@media (max-width: 800px) {
  html body #guide .timetable-guide .guide-release-date {
    margin: -54px 0 32px 12px !important;
    font-size: 17px !important;
  }
}

/* ===== [FOOTER] ===== */
/* EOF optical correction: LEZHIN must read smaller than the KIDARI wordmark. */
html body .full-footer-info .footer-organizer-logos .footer-logo-lezhin {
  width: 112px !important;
  height: 19px !important;
  max-width: 112px !important;
}

/* ===== [HEADER] ===== */
/* FINAL OVERRIDES — intentionally last. */
@media (max-width: 800px) {
  html body .topbar {
    top: 8px !important;
    right: 8px !important;
    left: 8px !important;
    display: flex !important;
    width: auto !important;
    height: 58px !important;
    min-height: 58px !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 7px 9px !important;
    border-radius: 29px !important;
    transform: none !important;
  }
  html body .topbar .logo {
    display: flex !important;
    width: 84px !important;
    height: 34px !important;
    flex: 0 0 84px !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  html body .topbar .logo img {
    display: block !important;
    width: 76px !important;
    height: auto !important;
    visibility: visible !important;
  }
  html body .topbar nav {
    position: static !important;
    display: flex !important;
    min-width: 0 !important;
    width: auto !important;
    height: 42px !important;
    flex: 1 1 auto !important;
    align-items: center !important;
    gap: 0 !important;
    padding: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 12px !important;
  }
  html body .topbar nav a {
    display: flex !important;
    height: 38px !important;
    min-height: 38px !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    padding: 0 9px !important;
    font-size: 12px !important;
  }
  html body .topbar .ticket-link {
    height: 42px !important;
    min-height: 42px !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 12px !important;
    border-radius: 21px !important;
    font-size: 12px !important;
  }
}
/* ===== [PROGRAM] ===== */
html
  body
  dialog.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > small,
html body #guide .guide-event-copy .event-list article > small {
  width: max-content !important;
  max-width: none !important;
  min-width: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
/* ===== [GUIDE] ===== */
html
  body
  dialog.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label:before,
html body #guide .guide-event-copy .reward-label:before {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  content: none !important;
}
html
  body
  dialog.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
html body #guide .guide-event-copy .reward-label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.78) !important;
}
html
  body
  dialog.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-icon,
html body #guide .guide-event-copy .reward-icon {
  display: inline-flex !important;
  width: 18px !important;
  height: 18px !important;
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: currentColor !important;
}
html
  body
  dialog.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
html body #guide .guide-event-copy .reward-chips > span {
  display: inline !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #fff !important;
}
html
  body
  dialog.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span:not(:last-child):after,
html body #guide .guide-event-copy .reward-chips > span:not(:last-child):after {
  display: inline !important;
  margin: 0 10px !important;
  color: rgba(255, 255, 255, 0.5) !important;
  content: "/" !important;
}
/* ===== [PROGRAM] ===== */
html body .program-dialog .program-dialog-scroll {
  scrollbar-color: var(--purple) #15151a !important;
  scrollbar-width: thin !important;
}
html body .program-dialog .program-dialog-scroll::-webkit-scrollbar {
  width: 12px !important;
  background: #15151a !important;
}
html body .program-dialog .program-dialog-scroll::-webkit-scrollbar-track {
  background: #15151a !important;
}
html body .program-dialog .program-dialog-scroll::-webkit-scrollbar-thumb {
  border: 3px solid #15151a !important;
  border-radius: 999px !important;
  background: var(--purple) !important;
}
/* ===== [FOOTER] ===== */
html body .full-footer-brand {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}
html body .full-footer-brand > img {
  display: block !important;
  width: auto !important;
  height: 54px !important;
  margin: 0 !important;
  visibility: visible !important;
  object-position: left center !important;
}
html body .full-footer-brand .full-footer-social {
  margin: 18px 0 0 !important;
  justify-content: flex-start !important;
}
html body .footer-organizer-logos .footer-logo-kidari {
  width: 164px !important;
  height: 25px !important;
}
html body .footer-organizer-logos .footer-logo-lezhin {
  width: 112px !important;
  height: 19px !important;
}
@media (max-width: 800px) {
  html body .full-footer-brand > img {
    height: 46px !important;
  }
}
/* ===== [PROGRAM] ===== */
@media (min-width: 801px) {
  html body .section-heading {
    display: grid !important;
    width: 100% !important;
    grid-template-columns: 55% 40% !important;
    column-gap: 5% !important;
    align-items: end !important;
  }
  html body .section-heading > h2,
  html body .section-heading > .program-title-wrap,
  html body .section-heading > .section-subtitle {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
  }
}
/* ===== [GUIDE] ===== */
@media (max-width: 800px) {
  html body #guide .session-schedule-wrap {
    width: 100% !important;
    max-width: 100% !important;
    margin: 24px 0 42px !important;
    overflow-x: auto !important;
    scrollbar-color: var(--purple) #15151a !important;
    scrollbar-width: thin !important;
  }
  html body #guide .session-schedule-wrap::-webkit-scrollbar {
    height: 10px !important;
    background: #15151a !important;
  }
  html body #guide .session-schedule-wrap::-webkit-scrollbar-track {
    background: #15151a !important;
  }
  html body #guide .session-schedule-wrap::-webkit-scrollbar-thumb {
    border: 2px solid #15151a !important;
    border-radius: 999px !important;
    background: var(--purple) !important;
  }
  html body #guide .session-schedule {
    width: 760px !important;
    min-width: 760px !important;
    table-layout: fixed !important;
  }
  html body #guide .session-schedule th,
  html body #guide .session-schedule td {
    padding: 10px 7px !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
  }
  html body #guide .session-schedule thead th {
    font-size: 12px !important;
  }
  html body #guide .session-schedule th:first-child {
    width: 48px !important;
    min-width: 48px !important;
  }
  html body #guide .session-schedule .daypart {
    position: sticky !important;
    z-index: 2 !important;
    left: 0 !important;
    background: #15151a !important;
    color: #fff !important;
  }
}

/* Absolute final locks — keep after every historical override. */
@media (min-width: 801px) {
  html body #guide .session-schedule-wrap {
    width: 100% !important;
    max-width: none !important;
    margin: 34px 0 58px !important;
  }
  html body #guide .session-schedule {
    width: 100% !important;
    min-width: 100% !important;
    table-layout: fixed !important;
  }
  html body #guide .session-schedule th,
  html body #guide .session-schedule td {
    padding: 20px 14px !important;
    font-size: clamp(18px, 1.25vw, 21px) !important;
    line-height: 1.35 !important;
  }
  html body #guide .session-schedule thead th {
    font-size: clamp(19px, 1.35vw, 22px) !important;
  }
}
/* ===== [PROGRAM] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > small,
html body #guide .guide-event-copy .event-list article > small {
  display: inline-flex !important;
  width: max-content !important;
  max-width: none !important;
  min-width: 0 !important;
  align-self: flex-start !important;
  padding: 7px 11px !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
html body #guide .guide-event-copy .event-list article > strong,
html body #guide .guide-event-copy .event-list article > p {
  width: 76% !important;
  max-width: 680px !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
html body #guide .guide-event-copy .event-list article > em {
  display: flex !important;
  grid-template-columns: none !important;
  align-items: center !important;
  gap: 14px !important;
}
/* ===== [GUIDE] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
html body #guide .guide-event-copy .reward-label {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  color: rgba(255, 255, 255, 0.78) !important;
  line-height: 1 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label:before,
html body #guide .guide-event-copy .reward-label:before {
  display: none !important;
  content: none !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-icon,
html body #guide .guide-event-copy .reward-icon {
  display: inline-flex !important;
  width: 18px !important;
  height: 18px !important;
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  color: currentColor !important;
  line-height: 0 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-icon
  svg,
html body #guide .guide-event-copy .reward-icon svg {
  display: block !important;
  width: 18px !important;
  height: 18px !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips,
html body #guide .guide-event-copy .reward-chips {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 4px 0 !important;
  padding: 0 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
html body #guide .guide-event-copy .reward-chips > span {
  display: inline !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 750 !important;
  line-height: 1.45 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span:not(:last-child):after,
html body #guide .guide-event-copy .reward-chips > span:not(:last-child):after {
  display: inline !important;
  margin: 0 10px !important;
  color: rgba(255, 255, 255, 0.5) !important;
  content: "/" !important;
}
/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > strong,
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > p,
  html body #guide .guide-event-copy .event-list article > strong,
  html body #guide .guide-event-copy .event-list article > p {
    width: 84% !important;
  }
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > em,
  html body #guide .guide-event-copy .event-list article > em {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 9px !important;
  }
}

/* Modal scrollbar belongs to the dark modal surface. */
html body .program-dialog .program-dialog-scroll {
  scrollbar-color: var(--purple) #15151a !important;
  scrollbar-width: thin !important;
}
html body .program-dialog .program-dialog-scroll::-webkit-scrollbar {
  width: 12px !important;
  background: #15151a !important;
}
html body .program-dialog .program-dialog-scroll::-webkit-scrollbar-track {
  background: #15151a !important;
}
html body .program-dialog .program-dialog-scroll::-webkit-scrollbar-thumb {
  border: 3px solid #15151a !important;
  border-radius: 999px !important;
  background: var(--purple) !important;
}

/* Shared program prose is one semantic copy group, without stacked paragraphs. */
html body .program-dialog .shared-program-copy {
  width: min(100%, 880px) !important;
  color: #d8d7dc !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
  text-wrap: pretty !important;
}
html body .program-dialog .shared-program-copy > span {
  display: block !important;
  margin: 0 0 18px !important;
}
html body .program-dialog .shared-program-copy > span:last-child {
  margin-bottom: 0 !important;
}

/* ===== [GUIDE] ===== */
/* Reward footer final reset. */
html
  body
  dialog.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label:before,
html body #guide .guide-event-copy .reward-label:before {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  content: none !important;
}
html
  body
  dialog.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
html body #guide .guide-event-copy .reward-label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.78) !important;
}
html
  body
  dialog.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-icon,
html body #guide .guide-event-copy .reward-icon {
  display: inline-flex !important;
  width: 18px !important;
  height: 18px !important;
  place-items: unset !important;
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: currentColor !important;
}
html
  body
  dialog.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
html body #guide .guide-event-copy .reward-chips > span {
  display: inline !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #fff !important;
}
html
  body
  dialog.program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span:not(:last-child):after,
html body #guide .guide-event-copy .reward-chips > span:not(:last-child):after {
  display: inline !important;
  margin: 0 10px !important;
  color: rgba(255, 255, 255, 0.5) !important;
  content: "/" !important;
}

/* ===== [PROGRAM] ===== */
/* Stage follows the same vertical information flow as goods merch. */
html body .program-dialog[data-program="stage"] .shared-program-section--stage {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0 !important;
}
html
  body
  .program-dialog[data-program="stage"]
  .shared-program-section--stage
  > header,
html
  body
  .program-dialog[data-program="merch"]
  .shared-program-section--merch
  > header {
  position: static !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 48px 0 !important;
  text-align: left !important;
}
html
  body
  .program-dialog[data-program="stage"]
  .shared-program-section--stage
  > header
  p,
html
  body
  .program-dialog[data-program="merch"]
  .shared-program-section--merch
  > header
  p {
  width: min(100%, 920px) !important;
  max-width: 920px !important;
  margin: 0 !important;
  text-align: left !important;
}
html
  body
  .program-dialog:is([data-program="stage"], [data-program="merch"])
  .shared-program-coming {
  width: 100% !important;
}
@media (max-width: 800px) {
  html
    body
    .program-dialog[data-program="stage"]
    .shared-program-section--stage
    > header,
  html
    body
    .program-dialog[data-program="merch"]
    .shared-program-section--merch
    > header {
    padding: 28px 0 !important;
  }
}

/* Event-card UI: compact index, wider copy, unboxed reward list. */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > small,
html body #guide .guide-event-copy .event-list article > small {
  display: inline-flex !important;
  width: max-content !important;
  max-width: none !important;
  min-width: 0 !important;
  align-items: center !important;
  padding: 6px 10px !important;
  border: 1px solid rgba(255, 255, 255, 0.72) !important;
  border-radius: 999px !important;
  background: transparent !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
html body #guide .guide-event-copy .event-list article > strong,
html body #guide .guide-event-copy .event-list article > p {
  width: 70% !important;
  max-width: 70% !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
html body #guide .guide-event-copy .event-list article > em {
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
}
/* ===== [GUIDE] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
html body #guide .guide-event-copy .reward-label {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 !important;
  line-height: 1 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label
  svg,
html body #guide .guide-event-copy .reward-label svg {
  display: block !important;
  flex: none !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips,
html body #guide .guide-event-copy .reward-chips {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 4px 10px !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
html body #guide .guide-event-copy .reward-chips > span {
  display: inline !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
}
/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > strong,
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > p,
  html body #guide .guide-event-copy .event-list article > strong,
  html body #guide .guide-event-copy .event-list article > p {
    width: 82% !important;
    max-width: 82% !important;
  }
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > em,
  html body #guide .guide-event-copy .event-list article > em {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 10px !important;
  }
}

/* Logo artwork sits low; supplied characters dress the visually empty cards. */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(n + 4):nth-child(-n + 8)
  .event-card-media
  img,
html
  body
  #guide
  .guide-event-copy
  .event-list
  article:nth-child(n + 4):nth-child(-n + 8)
  .event-card-media
  img {
  object-position: right 72% !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-card-character,
html body #guide .guide-event-copy .event-card-character {
  position: absolute !important;
  z-index: 1 !important;
  right: 3% !important;
  bottom: 12% !important;
  width: min(34%, 220px) !important;
  height: auto !important;
  max-height: 46% !important;
  object-fit: contain !important;
  object-position: right bottom !important;
  opacity: 0.72 !important;
  pointer-events: none !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(7)
  .event-card-character,
html
  body
  #guide
  .guide-event-copy
  .event-list
  article:nth-child(7)
  .event-card-character {
  width: min(39%, 250px) !important;
  opacity: 0.62 !important;
}
@media (max-width: 800px) {
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-card-character,
  html body #guide .guide-event-copy .event-card-character {
    right: 1% !important;
    bottom: 14% !important;
    width: 38% !important;
    opacity: 0.58 !important;
  }
}

html body dialog.program-dialog {
  box-shadow: none !important;
}

html body #program .program-card:hover,
html body #program .program-card:focus,
html body #program .program-card:focus-visible {
  border-color: #555 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

/* ===== [GUIDE] ===== */
html body #guide .session-schedule-wrap {
  width: 100% !important;
  max-width: 100% !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}
html body #guide .session-schedule .daypart,
html body #guide .session-schedule thead th:first-child {
  border-color: #4d4c55 !important;
}

/* ===== [HEADER] ===== */
/* Desktop/tablet header stays compact without clipping any of the eight labels. */
@media (min-width: 801px) {
  html body .topbar {
    top: 18px !important;
    right: 24px !important;
    left: 24px !important;
    width: auto !important;
    height: 72px !important;
    min-height: 72px !important;
    align-items: center !important;
    gap: clamp(12px, 1.4vw, 24px) !important;
    padding: 8px 18px !important;
    border-radius: 999px !important;
    transform: none !important;
  }
  html body .topbar .logo {
    flex: 0 0 132px !important;
    width: 132px !important;
    height: 44px !important;
    margin: 0 !important;
  }
  html body .topbar nav {
    position: static !important;
    display: flex !important;
    min-width: 0 !important;
    height: 44px !important;
    flex: 1 1 auto !important;
    align-items: center !important;
    justify-content: center !important;
    gap: clamp(10px, 1.05vw, 18px) !important;
    padding: 0 !important;
    overflow: hidden !important;
    font-size: clamp(13px, 0.86vw, 15px) !important;
    letter-spacing: 0.02em !important;
    white-space: nowrap !important;
  }
  html body .topbar nav a {
    display: flex !important;
    flex: 0 0 auto !important;
    height: 44px !important;
    align-items: center !important;
    padding: 0 !important;
    font-size: inherit !important;
  }
  html body .topbar .ticket-link {
    flex: 0 0 auto !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 18px !important;
    font-size: 14px !important;
  }
}

@media (max-width: 800px) {
  html body .topbar {
    top: 10px !important;
    right: 10px !important;
    left: 10px !important;
    display: grid !important;
    width: auto !important;
    height: auto !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 8px 12px !important;
    padding: 9px 12px !important;
    border-radius: 28px !important;
    transform: none !important;
  }
  html body .topbar .logo {
    display: flex !important;
    width: 104px !important;
    height: 34px !important;
    min-width: 0 !important;
    flex: 0 1 104px !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  html body .topbar .logo img {
    display: block !important;
    width: 90px !important;
    height: auto !important;
    max-width: 100% !important;
    visibility: visible !important;
  }
  html body .topbar .ticket-link {
    min-height: 40px !important;
    margin: 0 !important;
    padding: 0 14px !important;
    border-radius: 22px !important;
    font-size: 14px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }
  html body .topbar nav {
    position: absolute !important;
    top: calc(100% + 6px) !important;
    right: 0 !important;
    left: 0 !important;
    display: flex !important;
    width: auto !important;
    height: 50px !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    padding: 4px 8px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    border-radius: 25px !important;
    font-size: 13px !important;
    white-space: nowrap !important;
  }
  html body .topbar nav a {
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 12px !important;
    font-size: 13px !important;
  }
  html body #location .location-copy {
    padding: 70px max(6vw, 24px) 32px !important;
  }
  html body #location .location-card > a,
  html body #location .location-action {
    margin-top: 28px !important;
    margin-bottom: 0 !important;
  }
  html body #guide .guide-scroll-next,
  html body #guide .guide-scroll-prev {
    color: #fff !important;
  }
}

/* ===== [MAIN] ===== */
html body .cover-image {
  background-image: url("assets/img_main-hero-bw.webp") !important;
}
html body .cover-mask:after {
  background-image: url("assets/img_main-hero-color.webp") !important;
}

/* ===== [GUIDE] ===== */
/* Dark guide panels use one accessible neutral text palette. */
html body #guide .guide-panel {
  --guide-text: #e0dfe4;
  --guide-muted: #b9b7c0;
  --guide-line: #77757d;
}
html body #guide .guide-panel .guide-copy > p,
html body #guide .guide-panel .entry-guide-head > p,
html body #guide .guide-panel .entry-guide-details p,
html body #guide .guide-panel .entry-guide-details em,
html body #guide .guide-panel .notice-group li,
html body #guide .guide-panel .timetable-guide li {
  color: var(--guide-text) !important;
  opacity: 1 !important;
}
html body #guide .guide-panel .entry-guide-details em {
  color: var(--guide-muted) !important;
}
html body #guide .guide-panel .entry-guide-details > section,
html body #guide .guide-panel .notice-group {
  border-color: var(--guide-line) !important;
}

/* ===== [LOCATION] ===== */
/* Keep the LOCATION action entirely inside the information column. */
html body #location .location-copy .location-action {
  box-sizing: border-box !important;
  width: min(100%, 360px) !important;
  max-width: calc(100% - 16px) !important;
  min-width: 0 !important;
  align-self: flex-start !important;
  margin-right: 16px !important;
}

/* ===== [FOOTER] ===== */
/* Organizer marks share the same perceived height on black. */
html body .footer-organizer-logos .footer-logo-kidari {
  width: auto !important;
  height: 34px !important;
  filter: brightness(0) invert(1) !important;
}
html body .footer-organizer-logos .footer-logo-lezhin {
  width: auto !important;
  height: 22px !important;
  filter: none !important;
}

/* ===== [GUIDE] ===== */
/* Ticket guide: final card-only revision. */
html body #guide .ticket-pass-grid {
  align-items: stretch !important;
  gap: 24px !important;
  margin: 34px 0 54px !important;
}
html body #guide .ticket-pass {
  display: grid !important;
  grid-template-rows: auto 1fr auto !important;
  overflow: hidden !important;
  border: 1px solid #807d86 !important;
  background: #f7f4ef !important;
  box-shadow: 8px 8px 0 #6260e6 !important;
}
html body #guide .ticket-pass header,
html body #guide .ticket-pass.is-all header {
  min-height: 150px !important;
  padding: 30px !important;
  border-top: 0 !important;
}
html body #guide .ticket-pass header {
  background: #fff !important;
}
html body #guide .ticket-pass.is-all header {
  background: #6260e6 !important;
  color: #fff !important;
}
html body #guide .ticket-pass header > strong {
  margin: 0 0 14px !important;
  font-size: clamp(34px, 3vw, 44px) !important;
  line-height: 0.95 !important;
}
html body #guide .ticket-pass header > p {
  font-size: 14px !important;
  line-height: 1.55 !important;
}
html body #guide .ticket-pass dl {
  display: flex !important;
  flex-direction: column !important;
  margin: 0 !important;
  padding: 12px 30px 22px !important;
  background: #f7f4ef !important;
}
html body #guide .ticket-pass dl > div {
  display: grid !important;
  min-height: 58px !important;
  grid-template-columns: 150px 1fr !important;
  align-items: center !important;
  border-bottom: 1px solid #d2cec8 !important;
}
html body #guide .ticket-pass dl > div:last-child {
  border-bottom: 0 !important;
}
html body #guide .ticket-stage-access {
  min-height: 74px !important;
  margin-top: 6px !important;
  padding: 8px 14px !important;
  border: 1px solid #6260e6 !important;
  background: #eeecff !important;
}
html body #guide .ticket-stage-access dt {
  color: #34316f !important;
  font-weight: 850 !important;
}
html body #guide .ticket-stage-access dd {
  color: #292663 !important;
  font-size: 18px !important;
  font-weight: 900 !important;
}
html body #guide .ticket-stage-access dd.is-muted {
  color: #5d5965 !important;
}
html body #guide .ticket-stage-access dd:before {
  width: 10px !important;
  height: 10px !important;
  background: #6260e6 !important;
}
html body #guide .ticket-stage-access dd.is-muted:before {
  background: #8e8a92 !important;
}
html body #guide .ticket-options {
  position: relative !important;
  display: grid !important;
  gap: 12px !important;
  margin-top: auto !important;
  padding: 22px 30px 30px !important;
  border-top: 1px dashed #807d86 !important;
  background: #fff !important;
}
html body #guide .ticket-options:before,
html body #guide .ticket-options:after {
  position: absolute !important;
  top: -9px !important;
  width: 18px !important;
  height: 18px !important;
  border: 1px solid #807d86 !important;
  border-radius: 50% !important;
  background: #15151a !important;
  content: "" !important;
}
html body #guide .ticket-options:before {
  left: -10px !important;
}
html body #guide .ticket-options:after {
  right: -10px !important;
}
html body #guide .ticket-option {
  display: grid !important;
  grid-template-columns: 104px minmax(0, 1fr) !important;
  overflow: hidden !important;
  border: 1px solid #15151a !important;
  background: #fff !important;
}
html body #guide .ticket-option > b {
  display: grid !important;
  grid-row: 1/3 !important;
  place-items: center !important;
  padding: 16px 12px !important;
  background: #242424 !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  text-align: center !important;
}
html body #guide .ticket-option-price {
  display: flex !important;
  min-height: 64px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px !important;
  padding: 12px 18px 4px !important;
}
html body #guide .ticket-option-price del {
  color: #aaa7ac !important;
  font-size: 18px !important;
}
html body #guide .ticket-option-price strong {
  color: #15151a !important;
  font-size: 28px !important;
  line-height: 1 !important;
}
/* ===== [PROGRAM] ===== */
html body #guide .ticket-option.is-early .ticket-option-price strong:before {
  margin-right: 12px !important;
  color: #15151a !important;
  content: "→" !important;
}
/* ===== [GUIDE] ===== */
html body #guide .ticket-option > p {
  margin: 0 !important;
  padding: 0 18px 12px !important;
  color: #66626a !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  text-align: center !important;
}
@media (max-width: 800px) {
  html body #guide .ticket-pass-grid {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  html body #guide .ticket-pass {
    box-shadow: 5px 5px 0 #6260e6 !important;
  }
  html body #guide .ticket-pass header,
  html body #guide .ticket-pass.is-all header {
    min-height: 0 !important;
    padding: 24px 22px !important;
  }
  html body #guide .ticket-pass dl {
    padding: 8px 20px 18px !important;
  }
  html body #guide .ticket-pass dl > div {
    min-height: 52px !important;
    grid-template-columns: 132px 1fr !important;
  }
  html body #guide .ticket-stage-access {
    min-height: 68px !important;
    padding: 7px 12px !important;
  }
  html body #guide .ticket-stage-access dt {
    font-size: 13px !important;
  }
  html body #guide .ticket-stage-access dd {
    font-size: 17px !important;
  }
  html body #guide .ticket-options {
    gap: 10px !important;
    padding: 20px !important;
  }
  html body #guide .ticket-option {
    grid-template-columns: 88px minmax(0, 1fr) !important;
  }
  html body #guide .ticket-option > b {
    padding: 14px 8px !important;
    font-size: 14px !important;
  }
  html body #guide .ticket-option-price {
    min-height: 58px !important;
    gap: 9px !important;
    padding: 10px 10px 3px !important;
  }
  html body #guide .ticket-option-price del {
    font-size: 15px !important;
  }
  html body #guide .ticket-option-price strong {
    font-size: 24px !important;
  }
  html body #guide .ticket-option.is-early .ticket-option-price strong:before {
    margin-right: 7px !important;
  }
  html body #guide .ticket-option > p {
    padding: 0 10px 10px !important;
    font-size: 11px !important;
  }
}

/* Ticket cards: separated, balanced comparison cards with a consistent system. */
html body #guide .ticket-pass-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 24px !important;
  margin: 34px 0 54px !important;
  border: 0 !important;
  background: transparent !important;
}
html body #guide .ticket-pass {
  overflow: hidden !important;
  border: 1px solid #807d86 !important;
  border-radius: 0 !important;
  background: #f7f4ef !important;
  box-shadow: 8px 8px 0 #6260e6 !important;
}
/* ===== [PROGRAM] ===== */
html body #guide .ticket-pass + .ticket-pass {
  border: 1px solid #807d86 !important;
}
/* ===== [GUIDE] ===== */
html body #guide .ticket-pass header {
  display: block !important;
  min-height: 150px !important;
  padding: 28px 30px 24px !important;
  border-top: 7px solid #6260e6 !important;
  background: #fff !important;
}
html body #guide .ticket-pass.is-all header {
  border-top-color: #ffed75 !important;
  background: #6260e6 !important;
  color: #fff !important;
}
html body #guide .ticket-pass header > span {
  display: block !important;
  margin: 0 0 10px !important;
  color: #6260e6 !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  letter-spacing: 0.12em !important;
}
html body #guide .ticket-pass.is-all header > span {
  color: #ffed75 !important;
}
html body #guide .ticket-pass header > strong {
  display: block !important;
  margin: 0 0 12px !important;
  font-size: clamp(34px, 3vw, 44px) !important;
  line-height: 0.95 !important;
}
html body #guide .ticket-pass header > p {
  display: block !important;
  margin: 0 !important;
  color: #5f5c63 !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
}
html body #guide .ticket-pass.is-all header > p {
  color: #fff !important;
}
html body #guide .ticket-pass-price {
  background: #efebe5 !important;
}
html body #guide .ticket-pass dl > div {
  grid-template-columns: 112px 1fr !important;
}
html body #guide .ticket-pass footer {
  background: #fff !important;
}
@media (max-width: 800px) {
  html body #guide .ticket-pass-grid {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  html body #guide .ticket-pass header {
    min-height: 0 !important;
    padding: 24px 22px 22px !important;
  }
}

html body #guide .timetable-guide .guide-release-date {
  background: #ffed75 !important;
  color: #15151a !important;
}

/* Unified typography for PROGRAM details and every GUIDE tab. */
html body .program-dialog-scroll,
html body #guide .guide-panel {
  --detail-body: #d9d8de;
  --detail-muted: #aaa9b2;
  --detail-strong: #fff;
  --detail-size: 16px;
  --detail-leading: 1.58;
  --detail-paragraph-gap: 12px;
  --detail-group-gap: 28px;
}
html body .program-dialog .program-details-body p,
html body .program-dialog .program-details-body li,
html body #guide .guide-panel .guide-copy > p,
html body #guide .guide-panel .guide-copy li,
html body #guide .guide-panel .entry-guide-head > p,
html body #guide .guide-panel .entry-guide-details p,
html body #guide .guide-panel .notice-group li {
  color: var(--detail-body) !important;
  font-size: var(--detail-size) !important;
  line-height: var(--detail-leading) !important;
}
html body .program-dialog .program-details-body strong,
html body #guide .guide-panel .guide-copy > p strong,
html body #guide .guide-panel .guide-copy li strong,
html body #guide .guide-panel .entry-guide-head > p strong,
html body #guide .guide-panel .entry-guide-details p strong,
html body #guide .guide-panel .notice-group li strong {
  color: var(--detail-strong) !important;
  font-weight: 850 !important;
}
/* ===== [PROGRAM] ===== */
html body .program-dialog .exhibition-intro {
  display: grid !important;
  gap: var(--detail-paragraph-gap) !important;
  margin: 0 0 var(--detail-group-gap) !important;
}
html body .program-dialog .exhibition-intro p,
html body .program-dialog .exhibition-intro p:last-child {
  margin: 0 !important;
  padding: 0 !important;
  font-size: var(--detail-size) !important;
  line-height: var(--detail-leading) !important;
}
html body .program-dialog .shared-program-section header,
html body .program-dialog[data-program="event"] .event-intro {
  display: grid !important;
  gap: var(--detail-paragraph-gap) !important;
}
html body .program-dialog .shared-program-section header p,
html body .program-dialog[data-program="event"] .event-intro p {
  margin: 0 !important;
  padding: 0 !important;
  color: var(--detail-body) !important;
  font-size: var(--detail-size) !important;
  line-height: var(--detail-leading) !important;
}
/* ===== [GUIDE] ===== */
html body #guide .guide-panel .guide-copy > h3,
html body #guide .guide-panel .entry-guide-head > h3,
html body #guide .guide-panel .notice-guide > h3 {
  margin: 0 0 20px !important;
  color: var(--detail-strong) !important;
}
html body #guide .guide-panel .guide-copy > p,
html body #guide .guide-panel .entry-guide-head > p {
  margin: 0 0 var(--detail-group-gap) !important;
  padding: 0 !important;
}
html body #guide .guide-panel .entry-guide-details p,
html body #guide .guide-panel .entry-guide-details em,
html body #guide .guide-panel .notice-group ul {
  margin: 8px 0 0 !important;
}
html body #guide .guide-panel .entry-guide-details em {
  display: block !important;
  color: var(--detail-muted) !important;
}
html body #guide .guide-panel .ticket-pass,
html body #guide .guide-panel .ticket-pass * {
  --detail-body: #55525a;
  --detail-strong: #15151a;
}
html body #guide .guide-panel .ticket-pass.is-all header,
html body #guide .guide-panel .ticket-pass.is-all header * {
  --detail-body: #fff;
  --detail-strong: #fff;
}
@media (max-width: 800px) {
  html body .program-dialog-scroll,
  html body #guide .guide-panel {
    --detail-size: 15px;
    --detail-leading: 1.62;
    --detail-paragraph-gap: 10px;
    --detail-group-gap: 24px;
  }
}

/* ===== [PROGRAM] ===== */
/* Stage release information is grouped directly beneath COMING SOON. */
.program-dialog:is([data-program="stage"], [data-program="merch"])
  .shared-program-coming
  figcaption {
  display: flex !important;
  width: min(90%, 620px) !important;
  max-width: 90% !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 18px !important;
  text-align: center !important;
  white-space: normal !important;
}
.program-dialog:is([data-program="stage"], [data-program="merch"])
  .shared-program-coming
  figcaption
  > span {
  color: #fff !important;
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-size: clamp(30px, 3.7vw, 52px) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: 0.01em !important;
}
.program-dialog:is([data-program="stage"], [data-program="merch"])
  .shared-program-coming
  figcaption
  > strong {
  display: block !important;
  padding: 9px 14px !important;
  background: #ffed75 !important;
  color: #15151a !important;
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-size: clamp(19px, 2vw, 28px) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: -0.025em !important;
  transform: rotate(-3deg) !important;
}

/* ===== [FOOTER] ===== */
/* Preserve the footer brand mark's native aspect ratio: size by height only. */
.full-footer-brand > img {
  width: auto !important;
  height: 54px !important;
  max-width: 100% !important;
  object-fit: contain !important;
}
@media (max-width: 800px) {
  .full-footer-brand > img {
    width: auto !important;
    height: 46px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Exhibition modal hierarchy: intro, selector, and selected content read as separate groups. */
.program-dialog[data-program="exhibition"] .exhibition-intro {
  display: grid !important;
  gap: 7px !important;
  margin: 0 0 34px !important;
  padding: 0 0 26px !important;
  border-bottom: 0 !important;
}
.program-dialog[data-program="exhibition"] .exhibition-intro p {
  margin: 0 !important;
  max-width: 920px !important;
  color: #d8d7dc !important;
  font-size: 16px !important;
  line-height: 1.55 !important;
  text-wrap: pretty;
}
.program-dialog[data-program="exhibition"] .exhibition-intro p:last-child {
  margin-top: 8px !important;
}
.program-dialog[data-program="exhibition"] .exhibition-chips {
  gap: 10px !important;
  margin: 0 0 24px !important;
  padding: 0 !important;
  border-bottom: 0 !important;
}
.program-dialog[data-program="exhibition"] .exhibition-view-head {
  margin: 0 0 18px !important;
}
.program-dialog[data-program="exhibition"] .exhibition-gallery {
  margin-top: 0 !important;
}
.program-dialog[data-program="exhibition"] .program-dialog-header h3 {
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-weight: 400 !important;
  line-height: 0.9 !important;
  letter-spacing: -0.025em !important;
}
@media (max-width: 800px) {
  .program-dialog[data-program="exhibition"] .exhibition-intro {
    margin-bottom: 24px !important;
    padding-bottom: 20px !important;
  }
  .program-dialog[data-program="exhibition"] .exhibition-intro p {
    font-size: 15px !important;
    line-height: 1.6 !important;
  }
  .program-dialog[data-program="exhibition"] .exhibition-chips {
    margin-bottom: 20px !important;
    padding-bottom: 0 !important;
  }
}

/* Merch message precedes the image; the disclaimer remains a quiet footnote below it. */
.program-dialog[data-program="merch"] .shared-program-merch-feature {
  display: flex !important;
  flex-direction: column !important;
}
html body .program-dialog[data-program="merch"] .shared-program-merch-lead {
  order: 1 !important;
  width: min(100%, 920px) !important;
  margin: 8px 0 0 !important;
  padding: 0 0 38px !important;
  color: #fff !important;
  font-size: clamp(16px, 1.25vw, 19px) !important;
  font-weight: 700 !important;
  line-height: 1.55 !important;
  text-align: left !important;
  text-wrap: pretty;
}
.program-dialog[data-program="merch"] .shared-program-merch-image {
  order: 2 !important;
}
html
  body
  .program-dialog[data-program="merch"]
  .shared-program-merch-disclaimer {
  order: 3 !important;
  margin: 0 !important;
  padding: 12px 0 0 !important;
  color: #aaa9b0 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  text-align: right !important;
}
@media (max-width: 800px) {
  html body .program-dialog[data-program="merch"] .shared-program-merch-lead {
    font-size: 18px !important;
    text-align: left !important;
  }
  html
    body
    .program-dialog[data-program="merch"]
    .shared-program-merch-disclaimer {
    text-align: left !important;
  }
}

/* ===== [GUIDE] ===== */
/* Guide copy remains left aligned and readable on the dark panel. */
#guide .guide-panel,
#guide .guide-panel * {
  text-align: left;
}
#guide .guide-copy > h3,
#guide .entry-guide-head > h3,
#guide .notice-guide > h3 {
  color: #fff !important;
}
#guide .guide-copy > p,
#guide .guide-copy li,
#guide .entry-guide-details p,
#guide .entry-guide-details em,
#guide .notice-group li {
  color: #d8d7dc !important;
}
#guide .entry-guide-details strong,
#guide .notice-group > strong {
  color: #fff !important;
}
#guide .guide-copy h3,
#guide .guide-copy p,
#guide .guide-copy li,
#guide .entry-guide-details p,
#guide .notice-group li {
  text-wrap: pretty;
}
#guide .guide-event-copy .event-intro,
#guide .guide-event-copy .event-intro h4,
#guide .guide-event-copy .event-intro p {
  text-align: left !important;
}
#guide .guide-event-copy .event-intro {
  align-items: flex-start !important;
  margin-inline: 0 !important;
}
#guide .guide-event-copy .event-intro p {
  max-width: 880px !important;
  margin-inline: 0 !important;
}

/* Timetable image is retained; the release date is a high-contrast announcement. */
#guide .guide-timetable-image {
  width: min(100%, 1180px);
  margin: 0 0 28px !important;
  border: 2px solid #fff;
  background: #fff;
}
#guide .guide-timetable-image img {
  display: block;
  width: 100%;
  height: auto;
}
#guide .guide-timetable-image.is-coming-soon {
  position: relative;
  overflow: hidden;
}
#guide .guide-timetable-image.is-coming-soon img {
  filter: brightness(0.38) saturate(0.65) !important;
}
#guide .guide-timetable-image.is-coming-soon:after {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: rgba(15, 15, 20, 0.2);
  color: #fff;
  content: "COMING SOON";
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif;
  font-size: clamp(30px, 4vw, 54px);
  letter-spacing: 0.02em;
}
#guide .timetable-guide .guide-release-date {
  display: inline-flex !important;
  width: max-content !important;
  margin: 0 0 34px !important;
  padding: 16px 20px !important;
  border: 2px solid #ffed75 !important;
  background: #ffed75 !important;
  color: #15151a !important;
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-size: clamp(25px, 2.6vw, 38px) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: -0.025em !important;
}

/* Entry route map belongs before the four text sections. */
#guide .guide-view-entry .entry-guide-head {
  order: 1 !important;
}
#guide .guide-view-entry .entry-route-map {
  order: 2 !important;
  margin: 28px auto 34px !important;
}
#guide .guide-view-entry .entry-guide-details {
  order: 3 !important;
  margin: 0 !important;
}
#guide .guide-view-entry .entry-guide-details {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 0 !important;
}
#guide .guide-view-entry .entry-guide-details > section {
  width: 100% !important;
  padding: 30px 0 !important;
}

/* ===== [LOCATION] ===== */
/* Location follows the section gutter and keeps the route button clear of the map. */
#location.location {
  padding-inline: max(6vw, 30px) !important;
  column-gap: clamp(36px, 5vw, 80px) !important;
}
#location .location-card {
  padding-left: 0 !important;
  padding-right: 0 !important;
}
#location .location-card > a {
  position: static !important;
  width: min(100%, 420px) !important;
  margin-top: 42px !important;
}
#location .location-map {
  min-width: 0 !important;
}

/* ===== [FOOTER] ===== */
/* Footer logos occupy separate rows without overlap. */
.footer-organizer-logos {
  width: 210px !important;
  gap: 16px !important;
}
.footer-organizer-logos img,
.footer-organizer-logos .footer-logo-kidari,
.footer-organizer-logos .footer-logo-lezhin {
  position: static !important;
  flex: none !important;
  width: 170px !important;
  height: 34px !important;
  object-fit: contain !important;
  object-position: left center !important;
}

/* ===== [GUIDE] ===== */
/* Long guide copy wraps by phrase instead of leaving isolated words. */
#guide .guide-head h2,
#guide .guide-panel h3 {
  text-wrap: balance;
}
#guide .guide-head p,
#guide .guide-panel p {
  max-width: 48rem;
  text-wrap: pretty;
}
/* ===== [FOOTER] ===== */
@media (max-width: 800px) {
  #location.location {
    padding-inline: 24px !important;
  }
  #guide .guide-head p,
  #guide .guide-panel p {
    max-width: 34rem;
  }
  .footer-organizer-logos {
    gap: 14px !important;
  }
  .footer-organizer-logos img,
  .footer-organizer-logos .footer-logo-kidari,
  .footer-organizer-logos .footer-logo-lezhin {
    width: 150px !important;
    height: 30px !important;
  }
}

/* ===== [GUIDE] ===== */
/* Guide typography stays informational rather than poster-sized. */
html body #guide .guide-panel .guide-copy > h3,
html body #guide .entry-guide-head > h3,
html body #guide .notice-guide > h3 {
  font-size: clamp(28px, 2.4vw, 36px) !important;
  line-height: 1.15 !important;
}
html body #guide .guide-copy > p,
html body #guide .guide-copy li,
html body #guide .entry-guide-details p,
html body #guide .entry-guide-details em,
html body #guide .notice-group li {
  font-size: clamp(15px, 1.25vw, 18px) !important;
  line-height: 1.7 !important;
}
html body #guide .entry-guide-details strong,
html body #guide .notice-group > strong {
  font-size: clamp(18px, 1.55vw, 22px) !important;
  line-height: 1.35 !important;
}

/* The GUIDE event tab uses the same card system as the PROGRAM event modal. */
html body #guide .guide-event-copy .event-list {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 34px !important;
}
html body #guide .guide-event-copy .event-list article {
  position: relative !important;
  isolation: isolate !important;
  display: flex !important;
  min-height: 430px !important;
  flex-direction: column !important;
  overflow: hidden !important;
  padding: 42px 38px 0 !important;
}
html body #guide .guide-event-copy .event-card-media {
  position: absolute !important;
  z-index: 0 !important;
  inset: 0 0 0 34% !important;
  width: 66% !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  pointer-events: none !important;
}
html body #guide .guide-event-copy .event-card-media:after {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    var(--ticket-color) 0%,
    color-mix(in srgb, var(--ticket-color) 88%, transparent) 20%,
    color-mix(in srgb, var(--ticket-color) 28%, transparent) 72%,
    transparent 100%
  );
  content: "";
}
html body #guide .guide-event-copy .event-card-media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: right center !important;
  opacity: 0.58 !important;
  mix-blend-mode: multiply !important;
}
html
  body
  #guide
  .guide-event-copy
  .event-list
  article:nth-child(1)
  .event-card-media
  img,
html
  body
  #guide
  .guide-event-copy
  .event-list
  article:nth-child(2)
  .event-card-media
  img,
html
  body
  #guide
  .guide-event-copy
  .event-list
  article:nth-child(3)
  .event-card-media
  img,
html
  body
  #guide
  .guide-event-copy
  .event-list
  article:nth-child(9)
  .event-card-media
  img,
html
  body
  #guide
  .guide-event-copy
  .event-list
  article:nth-child(10)
  .event-card-media
  img {
  object-fit: cover !important;
  object-position: center !important;
}
html body #guide .guide-event-copy .event-list article > small,
html body #guide .guide-event-copy .event-list article > strong,
html body #guide .guide-event-copy .event-list article > p {
  position: relative !important;
  z-index: 2 !important;
  width: 58% !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
  color: #fff !important;
}
html body #guide .guide-event-copy .event-list article > em {
  position: relative !important;
  z-index: 2 !important;
  display: grid !important;
  width: calc(100% + 76px) !important;
  grid-template-columns: 82px minmax(0, 1fr) !important;
  margin: auto -38px 0 !important;
  padding: 16px 38px 18px !important;
  border-top: 1px solid rgba(255, 255, 255, 0.55) !important;
  background: rgba(12, 12, 16, 0.22) !important;
}
html body #guide .guide-event-copy .reward-chips {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
}
html body #guide .guide-event-copy .reward-chips > span {
  display: inline-flex !important;
  min-height: 24px !important;
  align-items: center !important;
  padding: 3px 7px !important;
  border: 1px solid rgba(255, 255, 255, 0.38) !important;
  border-radius: 3px !important;
  background: rgba(21, 21, 26, 0.13) !important;
  font-size: 11px !important;
  line-height: 1.25 !important;
}
html body #guide .guide-event-copy .reward-chips > span:after {
  display: none !important;
  content: none !important;
}
@media (max-width: 980px) {
  html body #guide .guide-event-copy .event-list {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 800px) {
  html body #guide .guide-event-copy .event-list article {
    min-height: 390px !important;
    padding: 30px 24px 0 !important;
  }
  html body #guide .guide-event-copy .event-card-media {
    inset: 0 0 0 24% !important;
    width: 76% !important;
  }
  html body #guide .guide-event-copy .event-list article > small,
  html body #guide .guide-event-copy .event-list article > strong,
  html body #guide .guide-event-copy .event-list article > p {
    width: 72% !important;
  }
  html body #guide .guide-event-copy .event-list article > em {
    width: calc(100% + 48px) !important;
    grid-template-columns: 1fr !important;
    margin: auto -24px 0 !important;
    padding: 14px 24px 16px !important;
  }
}

/* Session availability: keep the three day groups inside the content width. */
#guide .session-schedule-wrap {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
}
#guide .session-schedule {
  width: 100% !important;
  min-width: 0 !important;
  table-layout: fixed !important;
}
#guide .session-schedule th,
#guide .session-schedule td {
  padding: clamp(8px, 0.8vw, 13px) 6px !important;
  font-size: clamp(11px, 0.92vw, 15px) !important;
  line-height: 1.35 !important;
  overflow-wrap: normal !important;
  word-break: keep-all !important;
}
#guide .session-schedule tbody td[rowspan] {
  font-weight: 650 !important;
  white-space: normal !important;
}
#guide .session-schedule tbody td[rowspan] strong {
  display: inline-block;
  color: #15151a !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
}
#guide .session-schedule tbody td[rowspan] br + * {
  font-size: 0.92em !important;
  font-weight: 750 !important;
}
#guide .session-schedule th:first-child {
  width: 5.5% !important;
}
#guide .session-schedule tbody th:not(.daypart) {
  width: 12% !important;
}
#guide .session-schedule th:nth-child(2) {
  width: 12% !important;
}
#guide .session-schedule th:nth-child(3),
#guide .session-schedule td:nth-child(3) {
  width: 13% !important;
  white-space: nowrap !important;
}
@media (max-width: 950px) {
  #guide .session-schedule {
    min-width: 860px !important;
  }
}
/* ===== [MAP] ===== */
@media (max-width: 500px) {
  #map .map-pin {
    width: 22px !important;
    height: 22px !important;
    border-width: 1.5px !important;
    font-size: 9px !important;
  }
  #map .map-pin.is-active {
    transform: translate(-50%, -50%) scale(1.15) !important;
    box-shadow:
      0 0 0 4px rgba(255, 237, 117, 0.38),
      0 4px 12px rgba(0, 0, 0, 0.3) !important;
  }
}

/* Legend activation scrolls back to the map only when the layout is stacked. */
#map .booth-map-wrap {
  scroll-margin-top: calc(var(--header-height, 80px) + 20px);
}
#map .map-legend li {
  cursor: pointer;
}

/* ===== [GUIDE] ===== */
/* Guide text uses the supplied emphasis and remains legible on the dark panel. */
#guide .session-notes strong {
  color: #fff !important;
  font-weight: 900 !important;
}
#guide .guide-panel .guide-copy strong {
  display: inline !important;
  margin: 0 !important;
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}
#guide .guide-panel .ticket-option-price strong {
  display: inline !important;
  margin: 0 !important;
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-size: 48px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: -0.035em !important;
}
#guide .guide-panel .ticket-option-price del {
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-size: 32px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: -0.02em !important;
}
#guide .guide-panel .ticket-option.is-early .ticket-option-price {
  gap: 8px !important;
  padding-right: 8px !important;
  padding-left: 8px !important;
}
#guide .guide-panel .ticket-option.is-early .ticket-option-price strong {
  color: #15151a !important;
  font-size: 48px !important;
}
#guide .guide-panel .ticket-option.is-early .ticket-option-price del {
  font-size: 20px !important;
}
#guide .guide-panel .ticket-option.is-early .ticket-option-price strong:before {
  margin-right: 6px !important;
  font-size: 22px !important;
  vertical-align: 9px !important;
}
@media (max-width: 800px) {
  #guide .guide-panel .ticket-option-price strong {
    font-size: 36px !important;
  }
  #guide .guide-panel .ticket-option-price del {
    font-size: 24px !important;
  }
  #guide .guide-panel .ticket-option.is-early .ticket-option-price {
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    gap: 8px !important;
  }
  #guide .guide-panel .ticket-option.is-early .ticket-option-price strong {
    color: #15151a !important;
    font-size: 36px !important;
  }
  #guide .guide-panel .ticket-option.is-early .ticket-option-price del {
    font-size: 18px !important;
  }
  #guide
    .guide-panel
    .ticket-option.is-early
    .ticket-option-price
    strong:before {
    font-size: 19px !important;
    vertical-align: 4px !important;
  }
}
@media (max-width: 1100px) {
  html body #guide .ticket-pass-grid {
    grid-template-columns: 1fr !important;
    align-items: start !important;
    gap: 24px !important;
  }
  html body #guide .ticket-pass,
  html body #guide .ticket-pass:nth-child(n) {
    height: auto !important;
    grid-template-rows: auto auto auto !important;
  }
  html body #guide .ticket-options {
    align-content: start !important;
  }
}
#guide .guide-panel .ticket-pass header > strong {
  display: block !important;
  margin: 0 0 14px !important;
  font-size: 48px !important;
  line-height: 1 !important;
  letter-spacing: -0.045em !important;
}
@media (max-width: 800px) {
  #guide .guide-panel .ticket-pass header > strong {
    font-size: 36px !important;
  }
}
#guide .timetable-guide {
  color: #f2f1f5 !important;
}
#guide .timetable-guide .guide-release-date {
  margin: 0 0 24px !important;
  color: #ffeb70 !important;
  font-size: clamp(22px, 2.2vw, 32px) !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
}
#guide .timetable-guide .guide-release-date {
  color: #15151a !important;
}
#guide .timetable-guide h3 {
  color: #fff !important;
  font-weight: 900 !important;
}
#guide .timetable-guide li {
  color: #f2f1f5 !important;
  line-height: 1.75 !important;
}
#guide .timetable-guide strong {
  display: inline !important;
  margin: 0 !important;
  color: #fff !important;
  font-size: inherit !important;
  font-weight: 900 !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}

/* ===== [FOOTER] ===== */
/* Organizer logos: equal visual slots, vertically stacked, original brand colors. */
.full-footer-info:has(.footer-organizer-logos) {
  align-self: start !important;
}
.footer-organizer-logos {
  display: flex !important;
  width: 220px !important;
  max-width: 100% !important;
  height: auto !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 10px !important;
  margin-top: 2px !important;
}
.footer-organizer-logos img,
.footer-organizer-logos .footer-logo-kidari,
.footer-organizer-logos .footer-logo-lezhin {
  display: block !important;
  width: 180px !important;
  height: 28px !important;
  max-width: 100% !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: left center !important;
  filter: none !important;
  transform: none !important;
}
@media (max-width: 800px) {
  .footer-organizer-logos {
    width: 190px !important;
    gap: 8px !important;
  }
  .footer-organizer-logos img,
  .footer-organizer-logos .footer-logo-kidari,
  .footer-organizer-logos .footer-logo-lezhin {
    width: 156px !important;
    height: 24px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Exhibition explorer: four complete rows and a glimpse of the fifth on desktop. */
@media (min-width: 951px) {
  .exhibition-indicators {
    max-height: none !important;
    height: calc(var(--exhibition-thumb-row, 150px) * 4.35 + 40px) !important;
    overflow-y: auto !important;
  }
}

/* Small program headings use the display typeface; the release date reads as the primary notice. */
.program-dialog[data-program="stage"] .program-dialog-header h3,
.program-dialog[data-program="merch"] .program-dialog-header h3 {
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-weight: 400 !important;
  letter-spacing: -0.025em !important;
}
html body .program-dialog .shared-program-section .shared-program-note {
  display: inline-flex !important;
  width: max-content !important;
  margin: 28px 0 0 !important;
  padding: 13px 18px !important;
  border: 2px solid #ffed75 !important;
  background: #ffed75 !important;
  color: #15151a !important;
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-size: clamp(22px, 2.2vw, 32px) !important;
  font-weight: 400 !important;
  line-height: 1.05 !important;
  letter-spacing: -0.025em !important;
}

/* Merch caption is one designed information band, with the disclaimer style aligned to exhibition. */
html body .program-dialog[data-program="merch"] .shared-program-merch-caption {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 18px !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 22px 24px !important;
  border-top: 2px solid #15151a !important;
  background: #f7f4ef !important;
  color: #15151a !important;
  text-align: left !important;
}
html
  body
  .program-dialog[data-program="merch"]
  .shared-program-merch-caption
  strong {
  color: #15151a !important;
}
html
  body
  .program-dialog[data-program="merch"]
  .shared-program-merch-caption
  span {
  color: #6f6c76 !important;
  text-align: right !important;
}

/* EVENT cards stay in two columns; artwork sits behind the copy with a directional dim gradient. */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article {
  position: relative !important;
  isolation: isolate !important;
  display: flex !important;
  min-height: 430px !important;
  flex-direction: column !important;
  overflow: hidden !important;
  padding: 42px 38px 0 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-card-media {
  position: absolute !important;
  z-index: 0 !important;
  inset: 0 0 0 34% !important;
  width: 66% !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  pointer-events: none !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-card-media:after {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    var(--ticket-color) 0%,
    color-mix(in srgb, var(--ticket-color) 88%, transparent) 20%,
    color-mix(in srgb, var(--ticket-color) 28%, transparent) 72%,
    transparent 100%
  );
  content: "";
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-card-media
  img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: right center !important;
  opacity: 0.58 !important;
  filter: none !important;
  mix-blend-mode: multiply !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(1)
  .event-card-media
  img,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(2)
  .event-card-media
  img,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(3)
  .event-card-media
  img,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(9)
  .event-card-media
  img,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article:nth-child(10)
  .event-card-media
  img {
  object-fit: cover !important;
  object-position: center !important;
}

/* Program detail introductions share one left-aligned reading axis. */
html
  body
  .program-dialog[data-program="merch"]
  .shared-program-section--merch
  header,
html body .program-dialog[data-program="event"] .event-intro {
  align-items: flex-start !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 0 34px !important;
  text-align: left !important;
}
html
  body
  .program-dialog[data-program="merch"]
  .shared-program-section--merch
  header
  p,
html body .program-dialog[data-program="event"] .event-intro p {
  width: min(100%, 880px) !important;
  max-width: 880px !important;
  margin: 0 0 10px !important;
  text-align: left !important;
  text-wrap: pretty;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > small {
  display: inline-flex !important;
  width: max-content !important;
  padding: 7px 10px !important;
  border: 1px solid rgba(255, 255, 255, 0.65) !important;
  border-radius: 999px !important;
  background: rgba(0, 0, 0, 0.13) !important;
  font-size: 11px !important;
  letter-spacing: 0.12em !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong {
  margin-top: 16px !important;
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-size: clamp(25px, 2.25vw, 34px) !important;
  font-weight: 400 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.025em !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p {
  margin-top: 18px !important;
  font-size: 15px !important;
  line-height: 1.7 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label {
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 28px !important;
  padding: 5px 9px !important;
  border: 1px solid rgba(255, 255, 255, 0.42) !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.1) !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > small,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p {
  position: relative !important;
  z-index: 2 !important;
  width: 58% !important;
  margin-right: 0 !important;
  color: #fff !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em {
  position: relative !important;
  z-index: 2 !important;
  width: calc(100% + 76px) !important;
  margin: auto -38px 0 !important;
  padding: 18px 38px 20px !important;
  border-top: 1px solid rgba(255, 255, 255, 0.55) !important;
  background: rgba(0, 0, 0, 0.1) !important;
}

/* Event reward information is a compact footer UI, not a second headline. */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em {
  display: grid !important;
  grid-template-columns: 82px minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 10px 14px !important;
  padding: 16px 38px 18px !important;
  background: rgba(12, 12, 16, 0.22) !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label {
  padding: 5px 0 !important;
  color: rgba(255, 255, 255, 0.72) !important;
  font-size: 10px !important;
  line-height: 1.3 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span {
  display: inline-flex !important;
  min-height: 24px !important;
  align-items: center !important;
  padding: 3px 7px !important;
  border: 1px solid rgba(255, 255, 255, 0.38) !important;
  border-radius: 3px !important;
  background: rgba(21, 21, 26, 0.13) !important;
  font-size: 11px !important;
  font-weight: 750 !important;
  line-height: 1.25 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span:after {
  display: none !important;
  content: none !important;
}
@media (max-width: 800px) {
  html body .program-dialog[data-program="merch"] .shared-program-merch-lead {
    padding-bottom: 28px !important;
    font-size: 16px !important;
  }
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > em {
    grid-template-columns: 1fr !important;
    padding: 14px 24px 16px !important;
  }
}

/* ===== [MAP] ===== */
/* The supplied map is used at its native ratio; pin coordinates are based on this artwork. */
/* 지도 그림은 배경이 투명하므로, 그 아래에 밝은 바탕과 격자를 깐다 (크게 보기 팝업도 동일) */
#map .booth-map-stage,
.booth-dialog .zoom-surface img {
  background-color: #f4f1e9 !important;
  background-image:
    linear-gradient(rgba(100, 100, 230, 0.18) 1px, transparent 1px),
    linear-gradient(90deg, rgba(100, 100, 230, 0.18) 1px, transparent 1px) !important;
  background-size: 32px 32px !important;
}
#map .booth-map-stage {
  aspect-ratio: 6592/4500 !important;
}
#map .booth-map-stage > img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

/* ===== [LOCATION] ===== */
/* Final spacing corrections found during rendered review. */
html body #location.location {
  padding: 0 !important;
  column-gap: 0 !important;
}
html body #location .location-copy {
  padding: clamp(90px, 8vw, 140px) max(6vw, 30px) !important;
}
/* ===== [FOOTER] ===== */
html body .footer-organizer-logos {
  gap: 24px !important;
}
html body .footer-organizer-logos .footer-logo-kidari {
  width: 164px !important;
  height: 25px !important;
}
html body .footer-organizer-logos .footer-logo-lezhin {
  width: 164px !important;
  height: 27px !important;
}

/* ===== [PROGRAM] ===== */
/* Main section title scale is shared between ABOUT and PROGRAM. */
html body #about .about-copy h1,
html body #program .program-title-kicker,
html body #program .program-title-main {
  font-size: clamp(40px, 3.8vw, 54px) !important;
  line-height: 1.08 !important;
}
@media (max-width: 800px) {
  html body #about .about-copy h1,
  html body #program .program-title-kicker,
  html body #program .program-title-main {
    font-size: clamp(34px, 9vw, 43px) !important;
    line-height: 1.12 !important;
  }
  .program-dialog:is([data-program="stage"], [data-program="merch"])
    .shared-program-coming
    figcaption
    > span {
    font-size: clamp(28px, 10vw, 38px) !important;
  }
}

/* Mobile section titles must wrap inside the content column instead of clipping. */
@media (max-width: 800px) {
  html body #program .program-title-wrap,
  html body #program .program-title-kicker,
  html body #program .program-title-main {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: anywhere !important;
    word-break: keep-all !important;
    text-wrap: balance !important;
  }
  html body #program .program-title-kicker,
  html body #program .program-title-main {
    font-size: clamp(32px, 8vw, 40px) !important;
    letter-spacing: -0.055em !important;
  }
}
@media (max-width: 980px) {
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 800px) {
  html
    body
    .program-dialog[data-program="merch"]
    .shared-program-merch-caption {
    grid-template-columns: 1fr !important;
    padding: 18px !important;
  }
  html
    body
    .program-dialog[data-program="merch"]
    .shared-program-merch-caption
    span {
    text-align: left !important;
  }
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article {
    min-height: 390px !important;
    padding: 30px 24px 0 !important;
  }
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-card-media {
    inset: 0 0 0 24% !important;
    width: 76% !important;
  }
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > small,
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > strong,
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > p {
    width: 72% !important;
    margin-left: 0 !important;
  }
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > em {
    width: calc(100% + 48px) !important;
    margin: auto -24px 0 !important;
    padding: 16px 24px 18px !important;
  }
}

/* Cascade lock for the reviewed screens. */
html body .program-dialog[data-program="exhibition"] .exhibition-intro {
  border-bottom: 0 !important;
}
/* ===== [GUIDE] ===== */
html body #guide .guide-timetable-image {
  border: 0 !important;
  background: transparent !important;
}
html body #guide .guide-timetable-image.is-coming-soon:after {
  font-size: clamp(28px, 3.2vw, 46px) !important;
  color: #fff !important;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.72) !important;
}
html body #guide .timetable-guide .guide-release-date {
  padding: 10px 14px !important;
  border: 0 !important;
  background: #ffed75 !important;
  color: #15151a !important;
  font-size: clamp(19px, 2vw, 28px) !important;
  transform: rotate(-3deg) !important;
}
/* ===== [PROGRAM] ===== */
html body #program .program-card h3,
html body #program .program-card .program-card-copy h3,
html body #program .program-card .program-copy h3 {
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-weight: 400 !important;
  line-height: 1 !important;
}

/* ===== [GUIDE] ===== */
/* 261005 recovery: one authoritative desktop/mobile layout after historical overrides. */
@media (min-width: 801px) {
  html body .topbar {
    top: 18px !important;
    right: auto !important;
    left: 50% !important;
    width: min(calc(100% - 44px), 1600px) !important;
    height: 72px !important;
    min-height: 72px !important;
    display: grid !important;
    grid-template-columns: 108px minmax(0, 1fr) 176px !important;
    gap: 18px !important;
    padding: 8px 18px !important;
    overflow: hidden !important;
    transform: translateX(-50%) !important;
  }
  html body .topbar .logo {
    width: 108px !important;
    height: 44px !important;
    min-width: 0 !important;
    flex: none !important;
  }
  html body .topbar .logo img {
    width: 96px !important;
    height: auto !important;
  }
  html body .topbar nav {
    width: 100% !important;
    min-width: 0 !important;
    height: 44px !important;
    display: flex !important;
    justify-content: space-between !important;
    gap: 8px !important;
    overflow: visible !important;
    font-size: clamp(10px, 0.76vw, 13px) !important;
    letter-spacing: 0.01em !important;
  }
  html body .topbar nav a {
    min-width: 0 !important;
    padding: 0 !important;
    font-size: inherit !important;
  }
  html body .topbar .ticket-link {
    width: 176px !important;
    min-width: 176px !important;
    padding: 0 14px !important;
    justify-content: center !important;
    font-size: 13px !important;
  }

  html body #guide .session-schedule-wrap {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
  }
  html body #guide .session-schedule {
    width: 1440px !important;
    min-width: 1440px !important;
    table-layout: fixed !important;
  }
  html body #guide .session-schedule th,
  html body #guide .session-schedule td {
    padding: 18px 12px !important;
    font-size: 16px !important;
    line-height: 1.35 !important;
    white-space: nowrap !important;
  }
  html body #guide .session-schedule thead th {
    font-size: 18px !important;
  }
  html body #guide .session-schedule th:first-child {
    width: 72px !important;
  }
  html body #guide .session-schedule th:nth-child(2) {
    width: 164px !important;
  }
  html body #guide .session-schedule th:nth-child(3),
  html body #guide .session-schedule td:nth-child(3) {
    width: 180px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Event cards: remove capsules, give copy room, and keep the reward as one clean footer row. */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article,
html body #guide .guide-event-copy .event-list article {
  min-height: 520px !important;
  padding: 42px 38px 0 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > small,
html body #guide .guide-event-copy .event-list article > small {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  font-size: 13px !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
html body #guide .guide-event-copy .event-list article > strong,
html body #guide .guide-event-copy .event-list article > p {
  width: 64% !important;
  max-width: none !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
html body #guide .guide-event-copy .event-list article > p {
  font-size: 16px !important;
  line-height: 1.65 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
html body #guide .guide-event-copy .event-list article > em {
  width: calc(100% + 76px) !important;
  margin: auto -38px 0 !important;
  padding: 18px 38px 20px !important;
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
  background: rgba(21, 21, 26, 0.16) !important;
}

/* ===== [GUIDE] ===== */
/* Supplied guide artwork must render as an image, never as a broken white strip. */
html body #guide .guide-view-entry .entry-route-map {
  width: min(100%, 1180px) !important;
  max-width: 1180px !important;
  background: transparent !important;
}
html body #guide .guide-view-entry .entry-route-map .guide-reference-image {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  background: transparent !important;
}

/* ===== [FOOTER] ===== */
/* Footer organizer marks use the supplied originals at one identical height. */
html body .footer-organizer-logos {
  gap: 14px !important;
}
html body .full-footer-info .footer-organizer-logos .footer-logo-kidari,
html body .full-footer-info .footer-organizer-logos .footer-logo-lezhin {
  width: auto !important;
  height: 25px !important;
  max-width: none !important;
  object-fit: contain !important;
  object-position: left center !important;
}

@media (max-width: 800px) {
  html body .full-footer-info .footer-organizer-logos .footer-logo-kidari,
  html body .full-footer-info .footer-organizer-logos .footer-logo-lezhin {
    width: auto !important;
    height: 24px !important;
    max-width: none !important;
  }
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article,
  html body #guide .guide-event-copy .event-list article {
    min-height: 440px !important;
    padding: 28px 22px 0 !important;
  }
}
/* ===== [GUIDE] ===== */
html body #guide .entry-guide-details > section > strong,
html body #guide .notice-group > strong,
html body #guide .guide-copy > h3:not(:first-child) {
  color: #fff !important;
  font-family: "Noto Sans KR", "Apple SD Gothic Neo", sans-serif !important;
  font-size: 20px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
}
html body #guide .entry-guide-details > section:last-child,
html body #guide .notice-group:last-child {
  border-bottom: 0 !important;
}
/* ===== [FOOTER] ===== */
@media (max-width: 800px) {
  html body .full-footer-brand + .full-footer-info {
    margin-top: 20px !important;
  }
  html body .footer-organizer-logos {
    gap: 14px !important;
  }
  html body .full-footer-inner > small {
    margin-top: 20px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* FINAL cascade: reviewed component rules must remain identical across PROGRAM and GUIDE. */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article,
html body #guide .guide-event-copy .event-list article {
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 36px 30px 30px !important;
  border: 0 !important;
  outline: 0 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > small,
html body #guide .guide-event-copy .event-list article > small {
  width: max-content !important;
  max-width: calc(100% - 60px) !important;
  margin: 0 0 16px !important;
  padding: 7px 10px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: rgba(21, 21, 26, 0.3) !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: 0.12em !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong,
html body #guide .guide-event-copy .event-list article > strong {
  width: 78% !important;
  max-width: none !important;
  margin: 0 !important;
  color: #fff !important;
  font-size: clamp(24px, 2.75vw, 48px) !important;
  line-height: 1.08 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
html body #guide .guide-event-copy .event-list article > p {
  width: 78% !important;
  max-width: none !important;
  margin: 30px 0 0 !important;
  color: #fff !important;
  font-size: clamp(18px, 1.35vw, 22px) !important;
  line-height: 1.55 !important;
  letter-spacing: -0.025em !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
html body #guide .guide-event-copy .event-list article > em {
  width: calc(100% + 60px) !important;
  margin: 30px -30px 0 !important;
  padding: 15px 30px 14px !important;
  display: grid !important;
  grid-template-columns: max-content minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 10px 24px !important;
  border: 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.55) !important;
  background: rgba(21, 21, 26, 0.18) !important;
}
/* ===== [GUIDE] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
html body #guide .guide-event-copy .reward-label {
  display: inline-flex !important;
  align-items: center !important;
  align-self: start !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 3px 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.82) !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 22px !important;
  letter-spacing: 0.11em !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-icon,
html body #guide .guide-event-copy .reward-icon {
  display: inline-flex !important;
  width: 22px !important;
  height: 22px !important;
  align-items: center !important;
  justify-content: center !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-icon
  svg,
html body #guide .guide-event-copy .reward-icon svg {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips,
html body #guide .guide-event-copy .reward-chips {
  display: flex !important;
  min-width: 0 !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
  gap: 2px 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
html body #guide .guide-event-copy .reward-chips > span {
  display: inline !important;
  min-height: 0 !important;
  padding: 3px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #fff !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span:not(:last-child):after,
html body #guide .guide-event-copy .reward-chips > span:not(:last-child):after {
  display: inline !important;
  margin: 0 10px !important;
  color: rgba(255, 255, 255, 0.42) !important;
  content: "/" !important;
}
/* ===== [PROGRAM] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-card-character,
html body #guide .guide-event-copy .event-card-character {
  display: none !important;
}

/* ===== [GUIDE] ===== */
html body #guide .guide-panel {
  border: 1px solid #5b5961 !important;
  outline: 0 !important;
}
/* ===== [PROGRAM] ===== */
html body #guide .timetable-guide .shared-program-coming img,
html
  body
  .program-dialog:is([data-program="stage"], [data-program="merch"])
  .shared-program-coming
  img {
  filter: blur(7px) brightness(0.42) !important;
  transform: scale(1.018) !important;
}
/* ===== [GUIDE] ===== */
html body #guide .guide-view-entry .entry-route-map {
  order: 2 !important;
  align-self: center !important;
  margin: 0 auto 44px !important;
}
html body #guide .guide-view-entry .entry-guide-details {
  order: 3 !important;
  width: 100% !important;
  max-width: none !important;
  grid-template-columns: 1fr !important;
}
/* ===== [LOCATION] ===== */
html body #location .location-copy {
  align-content: start !important;
  padding-bottom: 38px !important;
}

/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  html body .footer-organizer-logos {
    gap: 14px !important;
  }
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article,
  html body #guide .guide-event-copy .event-list article {
    min-height: 0 !important;
    padding: 26px 20px 20px !important;
  }
  html
    body
    .program-dialog:is([data-program="event"], [data-program="exhibition"])
    .event-list
    article
    > em,
  html body #guide .guide-event-copy .event-list article > em {
    width: calc(100% + 40px) !important;
    grid-template-columns: 1fr !important;
    margin: 24px -20px 0 !important;
    padding: 13px 20px 12px !important;
  }
  html body #guide .guide-view-entry .entry-route-map {
    margin-bottom: 28px !important;
  }
  html body #location .location-copy {
    padding-bottom: 26px !important;
  }
}

/* ===== [FOOTER] ===== */
/* Absolute final locks for shared spacing. */
html body .full-footer-info .footer-organizer-logos {
  gap: 14px !important;
  row-gap: 14px !important;
  column-gap: 14px !important;
}
/* ===== [PROGRAM] ===== */
html body #program .program-grid {
  gap: 18px !important;
}
html body #guide .timetable-guide .shared-program-coming figcaption,
html
  body
  .program-dialog:is([data-program="stage"], [data-program="merch"])
  .shared-program-coming
  figcaption {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 18px !important;
  white-space: normal !important;
}
html body #guide .timetable-guide .shared-program-coming figcaption > strong,
html
  body
  .program-dialog:is([data-program="stage"], [data-program="merch"])
  .shared-program-coming
  figcaption
  > strong {
  display: block !important;
  padding: 9px 14px !important;
  background: #ffed75 !important;
  color: #15151a !important;
}
@media (max-width: 800px) {
  html body #program .program-grid {
    gap: 16px !important;
  }
}

/* ===== [GUIDE] ===== */
/* Final verified cascade locks. */
html body #guide .guide-tabs {
  border: 1px solid #666 !important;
}
html body #guide .guide-panel {
  border: 1px solid #5b5961 !important;
  border-top: 0 !important;
  outline: 0 !important;
}
/* ===== [FOOTER] ===== */
html body .full-footer-info .footer-organizer-logos {
  gap: 4px !important;
  row-gap: 4px !important;
  column-gap: 4px !important;
  margin-top: 0 !important;
}
/* ===== [PROGRAM] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > strong,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
html body #guide .guide-event-copy .event-list article > strong,
html body #guide .guide-event-copy .event-list article > p {
  width: 100% !important;
  max-width: none !important;
}
/* ===== [GUIDE] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > p,
html body #guide .guide-event-copy .event-list article > p,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips
  > span,
html body #guide .guide-event-copy .reward-chips > span {
  font-size: 16px !important;
}
/* ===== [PROGRAM] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
html body #guide .guide-event-copy .event-list article > em {
  margin-top: auto !important;
  margin-bottom: 0 !important;
}
/* ===== [LOCATION] ===== */
@media (min-width: 801px) {
  html body #location .location-copy {
    padding-bottom: clamp(90px, 8vw, 140px) !important;
  }
}
/* ===== [FOOTER] ===== */
@media (max-width: 800px) {
  html body .full-footer-info .footer-organizer-logos {
    gap: 4px !important;
    row-gap: 4px !important;
  }
  html body #location .location-copy {
    padding-bottom: 26px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* Shared modal spacing — common to all four detail views. */
html body .program-dialog .program-dialog-header {
  height: 96px !important;
  min-height: 96px !important;
  padding: 0 52px !important;
}
html body .program-dialog .program-dialog-scroll {
  padding: 28px 52px 56px !important;
}
html body .program-dialog .shared-program-section > header,
html body .program-dialog .event-intro,
html body .program-dialog .exhibition-intro {
  margin-top: 0 !important;
  margin-bottom: 28px !important;
}
@media (max-width: 800px) {
  html body .program-dialog .program-dialog-header {
    height: 78px !important;
    min-height: 78px !important;
    padding: 0 22px !important;
  }
  html body .program-dialog .program-dialog-scroll {
    padding: 22px 22px 40px !important;
  }
  html body .program-dialog .shared-program-section > header,
  html body .program-dialog .event-intro,
  html body .program-dialog .exhibition-intro {
    margin-bottom: 22px !important;
  }
}

/* ===== [GUIDE] ===== */
/* ABSOLUTE EOF: latest reviewed entry guide, mobile program, and timetable rules. */
html body #guide .guide-view-entry .entry-guide-head {
  margin-bottom: 20px !important;
}
html body #guide .guide-view-entry .entry-route-map {
  width: min(100%, 800px) !important;
  max-width: 800px !important;
  margin: 0 auto 24px !important;
  align-self: center !important;
  background: transparent !important;
  border: 0 !important;
}
html body #guide .guide-view-entry .entry-route-map .guide-reference-image {
  display: block !important;
  width: 100% !important;
  max-width: 800px !important;
  height: auto !important;
  margin: 0 auto !important;
}
html body #guide .guide-view-entry .entry-guide-details {
  width: min(100%, 1180px) !important;
  max-width: 1180px !important;
  margin: 0 auto !important;
  gap: 0 !important;
}
html body #guide .guide-view-entry .entry-guide-details > section,
html body #guide .guide-view-entry .entry-guide-details > section:nth-child(n) {
  background: transparent !important;
  border: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-bottom: 1px solid #5b5961 !important;
  box-shadow: none !important;
}
html body #guide .guide-view-entry .entry-guide-details > section:first-child {
  --route-color: #ff2a2f !important;
}
html
  body
  #guide
  .guide-view-entry
  .entry-guide-details
  > section:first-child
  > b {
  background: #ff2a2f !important;
}
html body #guide .guide-view-entry .route-in {
  stroke: #ff2a2f !important;
}
html body #guide .guide-view-entry .route-label-in rect {
  fill: #ff2a2f !important;
}
html body #guide .guide-view-entry marker#route-in-arrow path {
  fill: #ff2a2f !important;
}
html body #guide .guide-view-entry .entry-guide-details > section:last-child {
  border-bottom: 0 !important;
}
html body #guide .session-schedule {
  border: 1px solid #5b5961 !important;
  border-collapse: collapse !important;
}
html body #guide .session-schedule th,
html body #guide .session-schedule td {
  border: 1px solid #5b5961 !important;
}

/* ===== [PROGRAM] ===== */
@media (max-width: 800px) {
  html body #guide .guide-view-entry .entry-guide-head {
    margin-bottom: 14px !important;
  }
  html body #guide .guide-view-entry .entry-route-map {
    margin-bottom: 18px !important;
  }
  html body #program .program-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 16px !important;
    overflow: visible !important;
    overflow-x: visible !important;
    overflow-y: visible !important;
    scroll-snap-type: none !important;
  }
  html body #program .program-card,
  html body #program .program-card:nth-child(n),
  html body #program .program-card:last-child {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: none !important;
    margin: 0 !important;
    scroll-snap-align: none !important;
  }
  html body #program .program-grid::-webkit-scrollbar {
    display: none !important;
  }
}

/* ===== [GUIDE] ===== */
/* ABSOLUTE FINAL: ticket card revision. */
html body #guide .ticket-pass {
  grid-template-rows: auto 1fr auto !important;
}
html body #guide .ticket-pass header,
html body #guide .ticket-pass.is-all header {
  border-top: 0 !important;
}
html body #guide .ticket-pass dl {
  padding: 12px 30px 22px !important;
}
html body #guide .ticket-pass dl > div {
  grid-template-columns: 150px 1fr !important;
}
html body #guide .ticket-stage-access {
  min-height: 74px !important;
  padding: 8px 14px !important;
}
@media (max-width: 800px) {
  html body #guide .ticket-pass dl {
    padding: 8px 20px 18px !important;
  }
  html body #guide .ticket-pass dl > div {
    grid-template-columns: 132px 1fr !important;
  }
}

/* Latest ticket-card refinement: quiet stage row and perforations continued into the shadow. */
html body #guide .ticket-pass,
html body #guide .ticket-pass:nth-child(n) {
  box-shadow: 8px 8px 0 #6260e6 !important;
}
html body #guide .ticket-options:before {
  background: #15151a !important;
  box-shadow: none !important;
}
html body #guide .ticket-options:after {
  background: #6260e6 !important;
  box-shadow: 8px 8px 0 #15151a !important;
}
html body #guide .ticket-stage-access {
  min-height: 58px !important;
  margin-top: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 0 !important;
  background: #eeecff !important;
}
html body #guide .ticket-stage-access dt {
  color: #77737a !important;
  font-size: 15px !important;
  font-weight: 400 !important;
}
html body #guide .ticket-stage-access dd,
html body #guide .ticket-stage-access dd.is-muted {
  color: #15151a !important;
  font-size: 15px !important;
  font-weight: 400 !important;
}
html body #guide .ticket-stage-access dd:before {
  width: 8px !important;
  height: 8px !important;
}
html body #guide .ticket-stage-access dd.is-muted {
  color: #8c8990 !important;
}
@media (max-width: 800px) {
  html body #guide .ticket-pass,
  html body #guide .ticket-pass:nth-child(n) {
    box-shadow: 5px 5px 0 #6260e6 !important;
  }
  html body #guide .ticket-options:before {
    box-shadow: none !important;
  }
  html body #guide .ticket-options:after {
    box-shadow: 5px 5px 0 #15151a !important;
  }
  html body #guide .ticket-stage-access {
    min-height: 52px !important;
    padding: 0 !important;
  }
  html body #guide .ticket-stage-access dt,
  html body #guide .ticket-stage-access dd,
  html body #guide .ticket-stage-access dd.is-muted {
    font-size: 14px !important;
  }
}

/* White card body with content-driven spacing. */
html body #guide .ticket-pass-grid {
  align-items: start !important;
}
html body #guide .ticket-pass {
  grid-template-rows: auto auto auto !important;
  align-content: start !important;
  background: #fff !important;
}
html body #guide .ticket-pass dl {
  flex: none !important;
  padding: 12px 30px 22px !important;
  background: #fff !important;
}
html body #guide .ticket-options {
  margin-top: 0 !important;
  padding-top: 22px !important;
  background: #fff !important;
}
@media (max-width: 800px) {
  html body #guide .ticket-pass dl {
    padding: 8px 20px 18px !important;
  }
  html body #guide .ticket-options {
    padding-top: 20px !important;
  }
}

/* Inset only the stage-access tint while preserving the shared text columns. */
html body #guide .ticket-stage-access {
  position: relative !important;
  isolation: isolate !important;
  margin-right: 12px !important;
  margin-left: 12px !important;
  background: #eeecff !important;
}
html body #guide .ticket-stage-access:before {
  display: none !important;
  content: none !important;
}
@media (max-width: 800px) {
  html body #guide .ticket-stage-access {
    margin-right: 8px !important;
    margin-left: 8px !important;
  }
}

/* Ticket stubs use a vertical title/content hierarchy. */
html body #guide .ticket-option {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto auto !important;
}
html body #guide .ticket-option > b {
  display: block !important;
  grid-row: auto !important;
  padding: 10px 18px !important;
  background: #242424 !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  text-align: center !important;
}
html body #guide .ticket-option-price {
  min-height: 58px !important;
  padding: 14px 18px 4px !important;
}
html body #guide .ticket-option > p {
  padding: 2px 18px 14px !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}
@media (max-width: 800px) {
  html body #guide .ticket-option {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  html body #guide .ticket-option > b {
    padding: 9px 12px !important;
    font-size: 13px !important;
  }
  html body #guide .ticket-option-price {
    min-height: 52px !important;
    padding: 12px 10px 3px !important;
  }
  html body #guide .ticket-option > p {
    padding: 2px 10px 12px !important;
    font-size: 11px !important;
  }
}

/* ===== [PROGRAM] ===== */
/* All PROGRAM detail bodies begin at the EXHIBITION & EXPERIENCE baseline. */
html body .program-dialog .program-dialog-scroll {
  padding-top: 28px !important;
}
html body .program-dialog .program-details-body > *:first-child,
html body .program-dialog .shared-program-section > header,
html
  body
  .program-dialog[data-program="stage"]
  .shared-program-section--stage
  > header,
html
  body
  .program-dialog[data-program="merch"]
  .shared-program-section--merch
  > header,
html body .program-dialog[data-program="event"] .event-intro,
html body .program-dialog[data-program="exhibition"] .exhibition-intro {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
@media (max-width: 800px) {
  html body .program-dialog .program-dialog-scroll {
    padding-top: 22px !important;
  }
}

/* Final PROGRAM detail rhythm: 52px desktop inset, no per-span bottom margins. */
@media (min-width: 801px) {
  html body .program-dialog .program-dialog-scroll {
    padding-top: 52px !important;
  }
}
html body .program-dialog .shared-program-copy {
  display: grid !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
html body .program-dialog .shared-program-copy > span,
html body .program-dialog .shared-program-copy > span:last-child {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}
html body .program-dialog .shared-program-section > header {
  margin-bottom: 28px !important;
}

/* ===== [PLATFORMS] ===== */
/* Section subtitles stay legible when the layout narrows. */
html body .section-heading > .section-subtitle,
html body .program-head > .section-subtitle,
html body .festa-map-head > .section-subtitle,
html body .guide-head > .section-subtitle,
html body #platforms .platforms-head > .section-subtitle {
  font-size: 16px !important;
  line-height: 1.65 !important;
}
@media (max-width: 800px) {
  html body .section-heading > .section-subtitle,
  html body .program-head > .section-subtitle,
  html body .festa-map-head > .section-subtitle,
  html body .guide-head > .section-subtitle,
  html body #platforms .platforms-head > .section-subtitle {
    font-size: 16px !important;
    line-height: 1.6 !important;
  }
}

/* ===== [GUIDE] ===== */
/* Purchase stubs: branded halftone treatment without changing their information hierarchy. */
html body #guide .ticket-pass,
html body #guide .ticket-pass:nth-child(n) {
  overflow: visible !important;
}
/* ===== [PROGRAM] ===== */
html body #guide .ticket-pass,
html body #guide .ticket-pass:nth-child(n),
html body #guide .ticket-pass + .ticket-pass,
html body #guide .ticket-pass.is-all {
  border: 0 !important;
}
/* ===== [GUIDE] ===== */
html body #guide .ticket-option {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  background: #fff !important;
}
html body #guide .ticket-option > b {
  position: relative !important;
  z-index: 2 !important;
  overflow: hidden !important;
  padding-right: 74px !important;
  padding-left: 74px !important;
  background-color: #242424 !important;
  background-image:
    linear-gradient(90deg, transparent 0 58%, rgba(98, 96, 230, 0.2) 100%),
    radial-gradient(circle, rgba(255, 255, 255, 0.28) 1.2px, transparent 1.4px) !important;
  background-position:
    0 0,
    100% 50% !important;
  background-size:
    100% 100%,
    8px 8px !important;
}
html body #guide .ticket-option > b:before {
  position: absolute !important;
  top: 50% !important;
  left: 18px !important;
  color: #ffed75 !important;
  content: "✦" !important;
  font-size: 17px !important;
  line-height: 1 !important;
  transform: translateY(-50%) !important;
}
html body #guide .ticket-option > b:after {
  position: absolute !important;
  top: 50% !important;
  right: 18px !important;
  color: rgba(255, 255, 255, 0.75) !important;
  content: "TICKET" !important;
  font-size: 9px !important;
  font-weight: 900 !important;
  letter-spacing: 0.16em !important;
  line-height: 1 !important;
  transform: translateY(-50%) !important;
}
html body #guide .ticket-option:after {
  position: absolute !important;
  z-index: 0 !important;
  right: -16px !important;
  bottom: -18px !important;
  width: 140px !important;
  height: 110px !important;
  background-image: radial-gradient(
    circle,
    rgba(98, 96, 230, 0.25) 1.4px,
    transparent 1.6px
  ) !important;
  background-size: 9px 9px !important;
  content: "" !important;
  opacity: 0.72 !important;
  -webkit-mask-image: linear-gradient(
    135deg,
    transparent 12%,
    #000 88%
  ) !important;
  mask-image: linear-gradient(135deg, transparent 12%, #000 88%) !important;
}
html body #guide .ticket-option-price,
html body #guide .ticket-option > p {
  position: relative !important;
  z-index: 1 !important;
}
/* ===== [PROGRAM] ===== */
html body #guide .ticket-pass.is-all .ticket-option > b {
  background-color: #292663 !important;
  background-image:
    linear-gradient(90deg, transparent 0 52%, rgba(255, 237, 117, 0.18) 100%),
    radial-gradient(circle, rgba(255, 255, 255, 0.3) 1.2px, transparent 1.4px) !important;
}
html body #guide .ticket-pass.is-all .ticket-option:after {
  background-image: radial-gradient(
    circle,
    rgba(98, 96, 230, 0.34) 1.4px,
    transparent 1.6px
  ) !important;
}
/* ===== [GUIDE] ===== */
@media (max-width: 800px) {
  html body #guide .ticket-option > b {
    padding-right: 58px !important;
    padding-left: 58px !important;
  }
  html body #guide .ticket-option > b:before {
    left: 14px !important;
    font-size: 15px !important;
  }
  html body #guide .ticket-option > b:after {
    right: 12px !important;
    font-size: 8px !important;
  }
  html body #guide .ticket-option:after {
    right: -22px !important;
    bottom: -22px !important;
    width: 115px !important;
    height: 94px !important;
  }
}

/* Perforation cutouts are borderless inward-facing semicircles. */
html body #guide .ticket-options:before,
html body #guide .ticket-options:after {
  top: -10px !important;
  width: 10px !important;
  height: 20px !important;
  border: 0 !important;
}
html body #guide .ticket-options:before {
  left: 0 !important;
  border-radius: 0 10px 10px 0 !important;
  background: #15151a !important;
  box-shadow: none !important;
}
html body #guide .ticket-options:after {
  right: 0 !important;
  border-radius: 10px 0 0 10px !important;
  background: #6260e6 !important;
  box-shadow: 8px 8px 0 #15151a !important;
}
@media (max-width: 800px) {
  html body #guide .ticket-options:before,
  html body #guide .ticket-options:after {
    top: -9px !important;
    width: 9px !important;
    height: 18px !important;
    border: 0 !important;
  }
  html body #guide .ticket-options:before {
    left: 0 !important;
    border-radius: 0 9px 9px 0 !important;
    box-shadow: none !important;
  }
  html body #guide .ticket-options:after {
    right: 0 !important;
    border-radius: 9px 0 0 9px !important;
    background: #6260e6 !important;
    box-shadow: 5px 5px 0 #15151a !important;
  }
}

/* Ticket prices use the display typeface at a stronger scale. */
html body #guide .ticket-option-price,
html body #guide .ticket-option-price strong,
html body #guide .ticket-option-price del {
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
}
html body #guide .ticket-option-price strong {
  font-size: 38px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: -0.035em !important;
}
html body #guide .ticket-option-price del {
  font-size: 28px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: -0.025em !important;
}
/* ===== [PROGRAM] ===== */
html body #guide .ticket-option.is-early .ticket-option-price strong:before {
  font-family: "Noto Sans KR", sans-serif !important;
  font-size: 24px !important;
  vertical-align: 4px !important;
}
@media (max-width: 800px) {
  html body #guide .ticket-option-price strong {
    font-size: 32px !important;
  }
  html body #guide .ticket-option-price del {
    font-size: 23px !important;
  }
  html body #guide .ticket-option.is-early .ticket-option-price strong:before {
    font-size: 20px !important;
    vertical-align: 3px !important;
  }
}

/* ===== [GUIDE] ===== */
/* Early-bird stub uses the festival yellow/purple offer palette. */
html body #guide .ticket-option.is-early {
  border-color: #6260e6 !important;
}
html body #guide .ticket-option.is-early > b {
  background-color: #ffea4f !important;
  color: #242424 !important;
  background-image:
    radial-gradient(circle, rgba(98, 96, 230, 0.24) 1.1px, transparent 1.35px),
    linear-gradient(100deg, #fff58b 0%, #ffeb57 58%, #ffd93d 100%) !important;
  background-position:
    100% 50%,
    0 0 !important;
  background-size:
    9px 9px,
    100% 100% !important;
}
html body #guide .ticket-option.is-early > b:before {
  color: #6260e6 !important;
}
html body #guide .ticket-option.is-early > b:after {
  color: #4b48b2 !important;
}
/* ===== [PROGRAM] ===== */
html body #guide .ticket-option.is-early .ticket-option-price strong {
  color: #4f4dcc !important;
}

/* ===== [GUIDE] ===== */
/* Exact semicircle cuts; filtered shadow preserves the curved silhouette. */
html body #guide .ticket-options:before,
html body #guide .ticket-options:after {
  top: -10px !important;
  width: 10px !important;
  height: 20px !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
html body #guide .ticket-options:before {
  left: 0 !important;
  background: #15151a !important;
  clip-path: circle(10px at 0 10px) !important;
  filter: none !important;
}
html body #guide .ticket-options:after {
  right: 0 !important;
  background: #6260e6 !important;
  clip-path: circle(10px at 10px 10px) !important;
  filter: drop-shadow(8px 8px 0 #15151a) !important;
}

/* Price scale is intentionally prominent inside each purchase stub. */
html body #guide .ticket-option-price strong {
  font-size: 52px !important;
}
html body #guide .ticket-option-price del {
  font-size: 36px !important;
}
/* ===== [PROGRAM] ===== */
html body #guide .ticket-option.is-early .ticket-option-price strong:before {
  font-size: 28px !important;
  vertical-align: 6px !important;
}
@media (max-width: 800px) {
  html body #guide .ticket-options:before,
  html body #guide .ticket-options:after {
    top: -9px !important;
    width: 9px !important;
    height: 18px !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  html body #guide .ticket-options:before {
    left: 0 !important;
    clip-path: circle(9px at 0 9px) !important;
    filter: none !important;
  }
  html body #guide .ticket-options:after {
    right: 0 !important;
    clip-path: circle(9px at 9px 9px) !important;
    filter: drop-shadow(5px 5px 0 #15151a) !important;
  }
  html body #guide .ticket-option-price strong {
    font-size: 40px !important;
  }
  html body #guide .ticket-option-price del {
    font-size: 28px !important;
  }
  html body #guide .ticket-option.is-early .ticket-option-price strong:before {
    font-size: 22px !important;
    vertical-align: 4px !important;
  }
}

/* ===== [GUIDE] ===== */
/* Pass headings share one exact size and origin. */
html body #guide .ticket-pass header,
html body #guide .ticket-pass.is-all header {
  min-height: 152px !important;
  padding: 30px !important;
}
html body #guide .ticket-pass header > strong,
html body #guide .ticket-pass.is-all header > strong {
  margin: 0 0 14px !important;
  font-size: 48px !important;
  line-height: 1 !important;
  letter-spacing: -0.045em !important;
}

/* ===== [PROGRAM] ===== */
/* Regular-ticket bars use the section's light beige palette. */
html body #guide .ticket-pass .ticket-option:not(.is-early) > b {
  background-color: #f4f1e9 !important;
  color: #15151a !important;
  background-image:
    radial-gradient(circle, rgba(98, 96, 230, 0.18) 1.1px, transparent 1.35px),
    linear-gradient(100deg, #f7f4ed 0%, #eee8dc 100%) !important;
  background-position:
    100% 50%,
    0 0 !important;
  background-size:
    9px 9px,
    100% 100% !important;
}
html body #guide .ticket-pass .ticket-option:not(.is-early) > b:before {
  color: #6260e6 !important;
}
html body #guide .ticket-pass .ticket-option:not(.is-early) > b:after {
  color: #66616a !important;
}
/* ===== [GUIDE] ===== */
@media (max-width: 800px) {
  html body #guide .ticket-pass header,
  html body #guide .ticket-pass.is-all header {
    min-height: 0 !important;
    padding: 24px 22px !important;
  }
  html body #guide .ticket-pass header > strong,
  html body #guide .ticket-pass.is-all header > strong {
    font-size: 36px !important;
  }
}

/* Each purchase option is a tear-off ticket with side notches and a perforated seam. */
html body #guide .ticket-option-price {
  position: relative !important;
  border-top: 1px dashed #8b8790 !important;
}
html body #guide .ticket-option-price:before,
html body #guide .ticket-option-price:after {
  position: absolute !important;
  z-index: 3 !important;
  top: -10px !important;
  width: 10px !important;
  height: 20px !important;
  border: 0 !important;
  background: #fff !important;
  content: "" !important;
}
html body #guide .ticket-option-price:before {
  left: -1px !important;
  border-radius: 0 10px 10px 0 !important;
}
html body #guide .ticket-option-price:after {
  right: -1px !important;
  border-radius: 10px 0 0 10px !important;
}
/* ===== [PROGRAM] ===== */
html body #guide .ticket-option.is-early .ticket-option-price:before,
html body #guide .ticket-option.is-early .ticket-option-price:after {
  background: #fff !important;
}
/* ===== [GUIDE] ===== */
@media (max-width: 800px) {
  html body #guide .ticket-option-price:before,
  html body #guide .ticket-option-price:after {
    top: -8px !important;
    width: 8px !important;
    height: 16px !important;
  }
  html body #guide .ticket-option-price:before {
    border-radius: 0 8px 8px 0 !important;
  }
  html body #guide .ticket-option-price:after {
    border-radius: 8px 0 0 8px !important;
  }
}

/* Final price scale. */
html body #guide .ticket-option-price {
  min-height: 108px !important;
  padding-top: 24px !important;
}
html body #guide .ticket-option-price strong {
  font-size: 68px !important;
}
html body #guide .ticket-option-price del {
  font-size: 46px !important;
}
/* ===== [PROGRAM] ===== */
html body #guide .ticket-option.is-early .ticket-option-price strong:before {
  font-size: 34px !important;
  vertical-align: 9px !important;
}
@media (max-width: 800px) {
  html body #guide .ticket-option-price {
    min-height: 82px !important;
    padding-top: 18px !important;
  }
  html body #guide .ticket-option-price strong {
    font-size: 44px !important;
  }
  html body #guide .ticket-option-price del {
    font-size: 32px !important;
  }
  html body #guide .ticket-option.is-early .ticket-option-price strong:before {
    font-size: 24px !important;
    vertical-align: 5px !important;
  }
}

/* ===== [GUIDE] ===== */
/* The light section color belongs to the WE PASS introduction header. */
html body #guide .ticket-pass:not(.is-all) > header {
  background: #f4f1e9 !important;
}

/* ===== [PROGRAM] ===== */
/* Restore purchase-stub title bars; the earlier beige placement was incorrect. */
html body #guide .ticket-pass:not(.is-all) .ticket-option:not(.is-early) > b {
  background-color: #242424 !important;
  color: #fff !important;
  background-image:
    linear-gradient(90deg, transparent 0 58%, rgba(98, 96, 230, 0.2) 100%),
    radial-gradient(circle, rgba(255, 255, 255, 0.28) 1.2px, transparent 1.4px) !important;
  background-position:
    0 0,
    100% 50% !important;
  background-size:
    100% 100%,
    8px 8px !important;
}
html body #guide .ticket-pass.is-all .ticket-option:not(.is-early) > b {
  background-color: #292663 !important;
  color: #fff !important;
  background-image:
    linear-gradient(90deg, transparent 0 52%, rgba(255, 237, 117, 0.18) 100%),
    radial-gradient(circle, rgba(255, 255, 255, 0.3) 1.2px, transparent 1.4px) !important;
  background-position:
    0 0,
    100% 50% !important;
  background-size:
    100% 100%,
    8px 8px !important;
}
html body #guide .ticket-pass .ticket-option:not(.is-early) > b:before {
  color: #ffed75 !important;
}
html body #guide .ticket-pass .ticket-option:not(.is-early) > b:after {
  color: rgba(255, 255, 255, 0.75) !important;
}

/* ===== [GUIDE] ===== */
/* Explicit cut layers: right half on the left, left halves on the right and shadow edge. */
html body #guide .ticket-options:before,
html body #guide .ticket-options:after {
  display: none !important;
  content: none !important;
}
/* ===== [PROGRAM] ===== */
html body #guide .ticket-options > .ticket-cut {
  position: absolute !important;
  z-index: 4 !important;
  top: -10px !important;
  display: block !important;
  width: 10px !important;
  height: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  pointer-events: none !important;
}
html body #guide .ticket-options > .ticket-cut-left {
  left: 0 !important;
  background: #15151a !important;
  clip-path: circle(10px at 0 10px) !important;
}
html body #guide .ticket-options > .ticket-cut-right {
  right: 0 !important;
  background: #6260e6 !important;
  clip-path: circle(10px at 10px 10px) !important;
}
html body #guide .ticket-options > .ticket-cut-shadow {
  z-index: 3 !important;
  top: -2px !important;
  right: -8px !important;
  background: #15151a !important;
  clip-path: circle(10px at 10px 10px) !important;
}
/* ===== [GUIDE] ===== */
html body #guide .ticket-pass.is-all {
  border: 0 !important;
}
/* ===== [PROGRAM] ===== */
html body #guide .ticket-pass.is-all .ticket-option {
  border: 1px solid #242424 !important;
}
@media (max-width: 800px) {
  html body #guide .ticket-options > .ticket-cut {
    top: -9px !important;
    width: 9px !important;
    height: 18px !important;
  }
  html body #guide .ticket-options > .ticket-cut-left {
    clip-path: circle(9px at 0 9px) !important;
  }
  html body #guide .ticket-options > .ticket-cut-right {
    clip-path: circle(9px at 9px 9px) !important;
  }
  html body #guide .ticket-options > .ticket-cut-shadow {
    top: -4px !important;
    right: -5px !important;
    clip-path: circle(9px at 9px 9px) !important;
  }
}

/* ===== [GUIDE] ===== */
/* Ticket cards: aligned information rows, designed purchase stubs, equal desktop height. */
html body #guide .ticket-pass dl {
  padding: 12px 18px 22px !important;
}
html body #guide .ticket-pass dl > div,
html body #guide .ticket-pass dl > div:nth-child(n) {
  min-height: 64px !important;
  grid-template-columns: 150px minmax(0, 1fr) !important;
  margin: 0 !important;
  padding: 0 16px !important;
}
html body #guide .ticket-stage-access {
  min-height: 64px !important;
  margin: 0 !important;
  padding: 0 16px !important;
  background: #eeecff !important;
}
html body #guide .ticket-options {
  gap: 14px !important;
  padding: 28px 30px 30px !important;
}
html body #guide .ticket-option {
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto auto !important;
  border: 1px solid #242424 !important;
  background: #fff !important;
}
html body #guide .ticket-option > b {
  display: grid !important;
  min-height: 52px !important;
  place-items: center !important;
  padding: 12px 18px !important;
  background: #242424 !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 850 !important;
}
html body #guide .ticket-option-price {
  min-height: 118px !important;
  gap: 24px !important;
  padding: 26px 18px 10px !important;
}
html body #guide .ticket-option-price del {
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-size: 46px !important;
  font-weight: 400 !important;
  text-decoration-thickness: 3px !important;
}
html body #guide .ticket-option-price strong {
  font-family: "AG Choteuktaegothic", "Noto Sans KR", sans-serif !important;
  font-size: 68px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: -0.035em !important;
}
html body #guide .ticket-option > p {
  min-height: 50px !important;
  padding: 4px 18px 18px !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
}
@media (min-width: 801px) {
  html body #guide .ticket-pass-grid {
    align-items: stretch !important;
  }
  html body #guide .ticket-pass,
  html body #guide .ticket-pass:nth-child(n) {
    height: 100% !important;
    grid-template-rows: auto auto 1fr !important;
  }
  html body #guide .ticket-options {
    align-content: end !important;
  }
  html body #guide .ticket-pass.is-all {
    border: 0 !important;
    box-shadow: 8px 8px 0 #6260e6 !important;
  }
  html body #guide .ticket-pass.is-all header {
    background: #6260e6 !important;
    color: #fff !important;
  }
  html body #guide .ticket-pass.is-all .ticket-stage-access {
    background: #dedcff !important;
  }
}
@media (max-width: 800px) {
  html body #guide .ticket-pass dl {
    padding: 8px 12px 18px !important;
  }
  html body #guide .ticket-pass dl > div,
  html body #guide .ticket-pass dl > div:nth-child(n),
  html body #guide .ticket-stage-access {
    min-height: 58px !important;
    grid-template-columns: 132px minmax(0, 1fr) !important;
    padding: 0 12px !important;
  }
  html body #guide .ticket-options {
    padding: 22px 20px 24px !important;
  }
  html body #guide .ticket-option > b {
    min-height: 46px !important;
    font-size: 15px !important;
  }
  html body #guide .ticket-option-price {
    min-height: 88px !important;
    padding: 19px 10px 7px !important;
  }
  html body #guide .ticket-option-price del {
    font-size: 32px !important;
  }
  html body #guide .ticket-option-price strong {
    font-size: 44px !important;
  }
  html body #guide .ticket-option > p {
    min-height: 46px !important;
    padding: 3px 12px 15px !important;
    font-size: 12px !important;
  }
}

/* Ticket specification rows use one type size; hierarchy comes from weight and color only. */
html body #guide .ticket-pass dl dt,
html body #guide .ticket-pass dl dd,
html body #guide .ticket-stage-access dt,
html body #guide .ticket-stage-access dd,
html body #guide .ticket-stage-access dd.is-muted {
  font-size: 16px !important;
  line-height: 1.45 !important;
}
@media (max-width: 800px) {
  html body #guide .ticket-pass dl dt,
  html body #guide .ticket-pass dl dd,
  html body #guide .ticket-stage-access dt,
  html body #guide .ticket-stage-access dd,
  html body #guide .ticket-stage-access dd.is-muted {
    font-size: 15px !important;
    line-height: 1.45 !important;
  }
}

/* Perforation cutouts overpaint the card edge and the purple shadow by one extra pixel. */
html body #guide .ticket-options:before,
html body #guide .ticket-options:after {
  z-index: 3 !important;
  top: -11px !important;
  width: 20px !important;
  height: 20px !important;
  border: 1px solid #807d86 !important;
  background: #15151a !important;
  box-shadow: none !important;
}
html body #guide .ticket-options:before {
  left: -12px !important;
}
html body #guide .ticket-options:after {
  right: -12px !important;
}
@media (max-width: 800px) {
  html body #guide .ticket-options:before,
  html body #guide .ticket-options:after {
    top: -10px !important;
    width: 18px !important;
    height: 18px !important;
    background: #15151a !important;
    box-shadow: none !important;
  }
  html body #guide .ticket-options:before {
    left: -11px !important;
  }
  html body #guide .ticket-options:after {
    right: -11px !important;
  }
}

/* Entry artwork uses only its explicit top/bottom rhythm; remove inherited flex gap. */
html body #guide .guide-view-entry .entry-guide {
  gap: 0 !important;
  row-gap: 0 !important;
}

/* ===== [PROGRAM] ===== */
/* Event cards share equal grid rows; rewards remain plain content directly after copy. */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list,
html body #guide .guide-event-copy .event-list {
  display: grid !important;
  grid-auto-rows: 1fr !important;
  align-items: stretch !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article,
html body #guide .guide-event-copy .event-list article {
  height: 100% !important;
  min-height: 0 !important;
  align-self: stretch !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
html body #guide .guide-event-copy .event-list article > em {
  display: flex !important;
  width: 100% !important;
  max-width: none !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 8px !important;
  margin: 16px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-top: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
/* ===== [GUIDE] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
html body #guide .guide-event-copy .reward-label {
  display: inline-flex !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips,
html body #guide .guide-event-copy .reward-chips {
  display: flex !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

/* ===== [PROGRAM] ===== */
/* Event card copy and reward use one shared left edge after paragraph conversion. */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > .program-body-text,
html body #guide .guide-event-copy .event-list article > .program-body-text {
  position: relative !important;
  z-index: 2 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 30px 0 0 !important;
  padding: 0 !important;
  color: #fff !important;
  font-size: 16px !important;
  line-height: 1.65 !important;
  letter-spacing: -0.025em !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list
  article
  > em,
html body #guide .guide-event-copy .event-list article > em {
  align-self: flex-start !important;
  justify-content: flex-start !important;
  text-align: left !important;
}
/* ===== [GUIDE] ===== */
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-label,
html body #guide .guide-event-copy .reward-label,
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .reward-chips,
html body #guide .guide-event-copy .reward-chips {
  align-self: flex-start !important;
  justify-content: flex-start !important;
  text-align: left !important;
}

/* ===== [PROGRAM] ===== */
/* goods merch: one controlled gap between the complete copy block and its image. */
html
  body
  .program-dialog[data-program="merch"]
  .shared-program-section--merch
  > header {
  min-height: 0 !important;
  height: auto !important;
  margin: 0 0 53px !important;
  padding: 0 !important;
}

/* EVENT intro: no per-line spacing; one 53px gap before the card grid. */
html body .program-dialog[data-program="event"] .event-intro,
html body #guide .guide-event-copy .event-intro {
  gap: 0 !important;
  margin-bottom: 53px !important;
  padding-bottom: 0 !important;
}
html body .program-dialog[data-program="event"] .event-intro > span,
html
  body
  .program-dialog[data-program="event"]
  .event-intro
  > .program-body-text,
html body .program-dialog[data-program="event"] .event-intro > *,
html body #guide .guide-event-copy .event-intro > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
html
  body
  .program-dialog:is([data-program="event"], [data-program="exhibition"])
  .event-list,
html body #guide .guide-event-copy .event-list {
  margin-top: 0 !important;
}

/* Copy blocks do not carry paragraph/span margins; section spacing is explicit. */
html body .program-dialog[data-program="event"] .event-intro p,
html body .program-dialog[data-program="event"] .event-intro span,
html body .program-dialog[data-program="event"] .event-intro .program-body-text,
html body #guide .guide-event-copy .event-intro p,
html body #guide .guide-event-copy .event-intro span,
html body #guide .guide-event-copy .event-intro .program-body-text {
  margin: 0 !important;
}
/* ===== [GUIDE] ===== */
html body #guide .guide-view-entry .entry-guide-head p,
html body #guide .guide-view-entry .entry-guide-head span {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
html body #guide .guide-view-entry .entry-guide-head {
  margin-bottom: 53px !important;
}
@media (max-width: 800px) {
  html body #guide .guide-view-entry .entry-guide-head {
    margin-bottom: 53px !important;
  }
}

/* Ticket descriptions use the requested 16px type size. */
html body #guide .ticket-pass header > p,
html body #guide .ticket-pass.is-all header > p {
  font-size: 16px !important;
}

/* Ticket shadow and perforation color follow the actual stacked layers. */
html body #guide .ticket-pass,
html body #guide .ticket-pass:nth-child(n),
html body #guide .ticket-pass.is-all {
  box-shadow: 8px 8px 0 #6260e6 !important;
}
html body #guide .ticket-options:before {
  left: -12px !important;
  background: #15151a !important;
  box-shadow: none !important;
}
html body #guide .ticket-options:after {
  right: -12px !important;
  background: #6260e6 !important;
  box-shadow: 8px 8px 0 #15151a !important;
}
/* ===== [PROGRAM] ===== */
html body #guide .ticket-stage-access,
html body #guide .ticket-pass.is-all .ticket-stage-access {
  background: #f4f3ff !important;
}
/* ===== [GUIDE] ===== */
@media (max-width: 800px) {
  html body #guide .ticket-pass,
  html body #guide .ticket-pass:nth-child(n),
  html body #guide .ticket-pass.is-all {
    box-shadow: 5px 5px 0 #6260e6 !important;
  }
  html body #guide .ticket-options:before {
    left: -11px !important;
    box-shadow: none !important;
  }
  html body #guide .ticket-options:after {
    right: -11px !important;
    background: #6260e6 !important;
    box-shadow: 5px 5px 0 #15151a !important;
  }
}
/* ===== [HEADER] ===== */
/* Header restored from the preserved 0911 copy-point. */
html body .topbar {
  position: fixed !important;
  z-index: 80 !important;
  top: 18px !important;
  right: auto !important;
  left: 50% !important;
  display: flex !important;
  width: min(calc(100% - 44px), 1600px) !important;
  height: auto !important;
  min-height: 0 !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: clamp(18px, 2.5vw, 42px) !important;
  padding: 13px 18px !important;
  overflow: visible !important;
  border: 1px solid #15151a !important;
  border-radius: 40px !important;
  background: rgba(243, 240, 233, 0.9) !important;
  color: #15151a !important;
  box-shadow: none !important;
  transform: translateX(-50%) !important;
  backdrop-filter: blur(12px) !important;
}
html body .topbar .logo {
  display: flex !important;
  width: 140px !important;
  height: 42px !important;
  min-width: 0 !important;
  flex: 0 0 140px !important;
  align-items: center !important;
  margin: 0 clamp(8px, 1.2vw, 20px) 0 0 !important;
  padding: 0 4px !important;
}
html body .topbar .logo img {
  display: block !important;
  width: 96px !important;
  height: auto !important;
  max-width: none !important;
  visibility: visible !important;
  object-fit: contain !important;
}
html body .topbar nav {
  position: static !important;
  display: flex !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  flex: 0 1 auto !important;
  align-items: normal !important;
  justify-content: normal !important;
  gap: clamp(9px, 1.1vw, 20px) !important;
  padding: 0 !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  letter-spacing: 0.1em !important;
  white-space: nowrap !important;
  transform: none !important;
  backdrop-filter: none !important;
}
html body .topbar nav a {
  display: block !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  flex: 0 0 auto !important;
  align-items: normal !important;
  justify-content: normal !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  white-space: nowrap !important;
}
html body .topbar .ticket-link {
  display: block !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  min-height: 0 !important;
  flex: 0 0 auto !important;
  margin: 0 0 0 clamp(8px, 1.2vw, 20px) !important;
  padding: 10px 16px !important;
  border: 0 !important;
  border-radius: 30px !important;
  background: #15151a !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
}
@media (min-width: 801px) and (max-width: 1180px) {
  html body .topbar {
    gap: 10px !important;
    padding-right: 14px !important;
    padding-left: 14px !important;
  }
  html body .topbar .logo {
    width: 140px !important;
    height: 42px !important;
    flex-basis: 140px !important;
    margin-right: 0 !important;
  }
  html body .topbar nav {
    gap: clamp(7px, 1vw, 12px) !important;
    font-size: 12px !important;
    letter-spacing: 0.02em !important;
  }
  html body .topbar .ticket-link {
    margin-left: 0 !important;
    padding: 9px 12px !important;
    font-size: 12px !important;
  }
}
@media (max-width: 800px) {
  html body .topbar {
    top: 8px !important;
    right: 8px !important;
    left: 8px !important;
    display: grid !important;
    width: auto !important;
    height: auto !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 8px !important;
    padding: 10px 12px !important;
    border-radius: 999px !important;
    background: rgba(246, 241, 237, 0.86) !important;
    transform: none !important;
  }
  html body .topbar .logo {
    width: 112px !important;
    height: 34px !important;
    min-width: 0 !important;
    flex-basis: auto !important;
    margin: 0 !important;
  }
  html body .topbar .logo img {
    width: 88px !important;
    height: auto !important;
  }
  html body .topbar .ticket-link {
    margin: 0 !important;
    padding: 9px 12px !important;
    border-radius: 30px !important;
    font-size: 12px !important;
  }
  html body .topbar nav {
    position: absolute !important;
    z-index: 95 !important;
    top: calc(100% + 6px) !important;
    right: -12px !important;
    left: -12px !important;
    display: flex !important;
    width: auto !important;
    height: auto !important;
    align-items: normal !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    padding: 6px 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    border: 1px solid #15151a !important;
    border-radius: 999px !important;
    background: rgba(246, 241, 237, 0.86) !important;
    box-shadow: none !important;
    font-size: 14px !important;
    letter-spacing: 0.04em !important;
    scrollbar-width: none !important;
    backdrop-filter: blur(12px) !important;
  }
  html body .topbar nav::-webkit-scrollbar {
    display: none !important;
  }
  html body .topbar nav a {
    display: flex !important;
    height: 42px !important;
    min-height: 42px !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 18px !important;
    border-radius: 999px !important;
    text-align: center !important;
  }
}
/* ===== [MAP] ===== */
/* PROGRAM / FESTA MAP / GUIDE / PLATFORMS heading: title and subtitle share the same top edge. */
@media (min-width: 801px) {
  html body #program .program-head.section-heading,
  html body #map .festa-map-head.section-heading,
  html body #guide .guide-head.section-heading,
  html body #platforms .platforms-head.section-heading {
    align-items: start !important;
  }
  /* The title's line box is tight to its glyphs while the subtitle has ~0.44em
     of leading above its first line; pull the subtitle up so the glyph tops meet. */
  html body #program .program-head.section-heading > .section-subtitle,
  html body #map .festa-map-head.section-heading > .section-subtitle,
  html body #guide .guide-head.section-heading > .section-subtitle,
  html body #platforms .platforms-head.section-heading > .section-subtitle {
    margin-top: -0.44em !important;
  }
}
/* ===== [COMMON] ===== */
/* Global line breaking: wrap between words, never inside a Korean word. */
html body,
html body *,
html body *::before,
html body *::after {
  word-break: keep-all !important;
  overflow-wrap: break-word;
}
/* ===== [COMMON] ===== */
/* Section headings on wide screens: the title column was sized by viewport (55vw)
   while the section itself stops growing, which squeezed the subtitle column.
   Cap the title column relative to the heading so the subtitle keeps its width. */
@media (min-width: 801px) {
  html body #program .program-head.section-heading,
  html body #map .festa-map-head.section-heading,
  html body #guide .guide-head.section-heading,
  html body #platforms .platforms-head.section-heading {
    grid-template-columns:
      minmax(485px, min(55vw, 62%))
      minmax(210px, 1fr) !important;
  }
}
/* ===== [MAP] ===== */
/* FESTA MAP title is Latin text ("Exhibition & Experience"); its capitals sit
   ~3px lower than Hangul glyphs, so the subtitle is pulled up slightly less. */
@media (min-width: 801px) {
  html body #map .festa-map-head.section-heading > .section-subtitle {
    margin-top: -0.27em !important;
  }
}
/* ===== [PROGRAM] ===== */
/* Exhibition zone number badge: stays a circle for "01", grows into a pill for "08·09". */
html body .program-dialog .exhibition-view-head span {
  width: auto !important;
  min-width: 38px !important;
  padding: 0 10px !important;
  border-radius: 999px !important;
  white-space: nowrap !important;
}
/* ===== [PROGRAM] ===== */
/* Exhibition popup: one representative image + the mapped event card(s) per tab. */
html body .program-dialog[data-program="exhibition"] .exhibition-gallery {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 24px !important;
  align-items: stretch !important;
}
html
  body
  .program-dialog[data-program="exhibition"]
  .exhibition-gallery.has-events {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
}
html
  body
  .program-dialog[data-program="exhibition"]
  .exhibition-gallery:not(.has-events) {
  max-width: 760px !important;
}
html body .program-dialog[data-program="exhibition"] .exhibition-feature,
html body .program-dialog[data-program="exhibition"] .exhibition-feature img {
  width: 100% !important;
  height: 100% !important;
}
html body .program-dialog[data-program="exhibition"] .exhibition-feature img {
  min-height: 280px !important;
  object-fit: cover !important;
}
html body .program-dialog[data-program="exhibition"] .exhibition-events {
  display: grid !important;
  gap: 20px !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 8px 8px 0 !important;
}
html
  body
  .program-dialog[data-program="exhibition"]
  .exhibition-events
  .event-list {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 0 !important;
  margin: 0 !important;
}
html
  body
  .program-dialog[data-program="exhibition"]
  .exhibition-events
  .event-list
  > article:not([hidden]) {
  height: 100% !important;
}
html
  body
  .program-dialog[data-program="exhibition"]
  .exhibition-view
  > .program-image-notice {
  margin-top: 14px !important;
}
/* 레진 / 봄툰 탭 강조 */
html body .program-dialog[data-program="exhibition"] .exhibition-chips {
  align-items: center !important;
}
html
  body
  .program-dialog[data-program="exhibition"]
  .exhibition-chips
  button.is-featured {
  min-height: 58px !important;
  padding: 0 32px !important;
  border-width: 2px !important;
  border-color: #fff !important;
  font-size: 21px !important;
}
@media (max-width: 800px) {
  html
    body
    .program-dialog[data-program="exhibition"]
    .exhibition-gallery.has-events {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  html body .program-dialog[data-program="exhibition"] .exhibition-feature img {
    min-height: 0 !important;
    height: auto !important;
  }
  html
    body
    .program-dialog[data-program="exhibition"]
    .exhibition-chips
    button.is-featured {
    min-height: 52px !important;
    padding: 0 22px !important;
    font-size: 18px !important;
  }
}
/* ===== [PROGRAM] ===== */
/* And More EVENT: new cards (welcome gift, review) */
html
  body
  :is(.program-dialog, #guide)
  .program-details-body
  .event-list
  > article:is(.event-card--welcome, .event-card--review),
html
  body
  #guide
  .guide-event-copy
  .event-list
  > article:is(.event-card--welcome, .event-card--review) {
  --ticket-color: var(--more-event-color) !important;
  --event-accent: var(--more-event-color) !important;
  background: var(--more-event-color) !important;
  background-image: none !important;
  color: #fff !important;
}
/* Card colors: darker takes on the brand pink and mint so white copy stays readable
   and the four cards (pink / blue / charcoal / green) read as distinct. */
html body .event-list > article.event-card--welcome {
  --more-event-color: #d9438f;
}
html body .event-list > article.event-card--review {
  --more-event-color: #0f8a72;
}
/* Welcome gift: the kit photo sits behind the copy like the other event visuals. */
html
  body
  :is(.program-dialog, #guide)
  .event-list
  > article.event-card--welcome
  .event-card-media
  img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  mix-blend-mode: normal !important;
}
/* ===== [GUIDE] ===== */
/* Guide now has six tabs: one row of six on desktop (mobile keeps its scrolling row). */
@media (min-width: 801px) {
  html body #guide .guide-tabs {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  }
}
/* ===== [GUIDE] ===== */
/* Entry / pickup guide: tighter vertical rhythm between the stacked sentences and notes
   (was 8px row gap + 8px margin = 16px between every line). */
html body #guide .guide-panel .entry-guide-details > section:nth-child(n) {
  row-gap: 4px !important;
}
html body #guide .guide-panel .entry-guide-details > section > p,
html body #guide .guide-panel .entry-guide-details > section > em {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
html body #guide .guide-panel .entry-guide-details > section > strong + p {
  margin-top: 4px !important;
}
html body #guide .guide-panel .entry-guide-details > section > p + em {
  margin-top: 8px !important;
}
/* Sentences use the full column (no 768px cap) so they stay on one line when they fit. */
html body #guide .guide-panel .entry-guide-details > section > p,
html body #guide .guide-panel .entry-guide-details > section > em {
  width: auto !important;
  max-width: none !important;
}
/* ===== [GUIDE] ===== */
/* 기타안내: small English label above each group title. */
html body #guide .notice-group > strong > .notice-en {
  display: block !important;
  margin: 0 0 4px !important;
  font-family: "Noto Sans KR", sans-serif !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.12em !important;
  line-height: 1.2 !important;
  opacity: 0.6 !important;
}
/* ===== [MAP] ===== */
/* Booth legend: each "\n"-separated part of a name is its own line. */
html body #map .map-legend li .booth-line {
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  color: inherit !important;
  font: inherit !important;
  letter-spacing: inherit !important;
}
/* 1500px and up (where the legend is two columns): the legend column was ~450px, leaving ~160px per
   name. Give it 550px so the longest forced line ("<SALON DE LEBOM SEASON 2>", ~205px)
   fits without a second wrap; the map takes the rest. */
@media (min-width: 1500px) {
  html body #map .festa-map-layout {
    grid-template-columns: minmax(0, 1fr) 550px !important;
  }
}
/* ===== [MODAL] ===== */
/* Scrolling inside a popup never chains to the page behind it. */
html body dialog,
html body dialog .program-dialog-scroll {
  overscroll-behavior: contain !important;
}
/* ===== [MAIN] ===== */
/* Mobile cover: sized from the viewport height captured at load (--cover-vh, set in index.html)
   instead of live viewport units, so the hero images do not rescale when the browser's
   toolbar collapses or expands during scroll. Falls back to svh if the script has not run. */
@media (max-width: 800px) {
  html body .cover {
    height: max(980px, calc(var(--cover-vh, 100svh) * 1.45)) !important;
  }
  html body .cover .cover-sticky {
    height: var(--cover-vh, 100svh) !important;
  }
}

/* ===== [PLATFORMS] 플랫폼 로고 / 협력사 / 주최·재이미룸 QR ===== */
#platforms .platform-board {
  max-width: 1440px;
  margin: 56px auto 0;
}
#platforms .platform-board ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
#platforms .platform-main {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 56px 24px;
  align-items: center;
}
/* 윗줄은 2개만 가운데 두 칸에 놓는다 */
#platforms .platform-main li:nth-child(1) {
  grid-column: 2;
}
#platforms .platform-main li:nth-child(3) {
  grid-column: 1;
}
#platforms .platform-main a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 64px;
  transition: opacity 0.2s;
}
#platforms .platform-main a:hover {
  opacity: 0.65;
}
#platforms .platform-main img {
  display: block;
  width: auto;
  height: 40px;
  max-width: 78%;
  object-fit: contain;
}
#platforms .platform-main img.is-tall {
  height: 60px;
}
#platforms .platform-main img.is-lebom {
  height: 23px;
}
#platforms .platform-partners img.is-wordmark {
  height: 28px;
}
#platforms .platform-partners {
  margin-top: 56px;
  padding-top: 32px;
  border-top: 1px solid rgba(21, 21, 26, 0.3);
  text-align: center;
}
#platforms .platform-partners h3 {
  margin: 0 0 32px;
  font-size: 15px;
  font-weight: 700;
  color: rgba(21, 21, 26, 0.5);
}
#platforms .platform-partners ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 24px 40px;
}
#platforms .platform-partners li {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 72px;
}
#platforms .platform-partners img {
  display: block;
  width: auto;
  height: 36px;
  max-width: 180px;
  object-fit: contain;
}
#platforms .platform-partners img.is-square {
  height: 72px;
}
#platforms .platform-partners span {
  font-size: 26px;
  font-weight: 900;
  color: #b4a57c;
}
#platforms .platform-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px 40px;
  margin-top: 72px;
}
#platforms .platform-host {
  margin: 0;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: 0.01em;
}
#platforms .platform-host strong {
  margin-right: 12px;
  padding-right: 12px;
  border-right: 2px solid currentColor;
  font-weight: 900;
}
#platforms .platform-play {
  display: flex;
  align-items: center;
  gap: 12px;
}
#platforms .platform-play > span {
  font-size: 18px;
  font-weight: 900;
  color: rgba(21, 21, 26, 0.5);
}
#platforms .platform-play-logo {
  display: block;
  width: auto;
  height: 44px;
  margin-right: 4px;
}
#platforms .platform-qr {
  display: flex;
  gap: 12px;
}
#platforms .platform-play a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  color: inherit;
  text-decoration: none;
}
#platforms .platform-play a img {
  display: block;
  width: 76px;
  height: 76px;
}
#platforms .platform-play small {
  font-size: 11px;
  font-weight: 700;
}
@media (max-width: 800px) {
  #platforms .platform-board {
    margin-top: 36px;
  }
  #platforms .platform-main {
    grid-template-columns: repeat(2, 1fr);
    gap: 28px 16px;
  }
  #platforms .platform-main li:nth-child(1),
  #platforms .platform-main li:nth-child(3) {
    grid-column: auto;
  }
  #platforms .platform-main a {
    height: 52px;
  }
  #platforms .platform-main img {
    height: 30px;
  }
  #platforms .platform-main img.is-tall {
    height: 46px;
  }
  #platforms .platform-main img.is-lebom {
    height: 17px;
  }
  #platforms .platform-partners img.is-wordmark {
    height: 20px;
  }
  #platforms .platform-partners {
    margin-top: 40px;
    padding-top: 24px;
  }
  #platforms .platform-partners h3 {
    margin-bottom: 20px;
    font-size: 13px;
  }
  #platforms .platform-partners ul {
    gap: 16px 32px;
  }
  #platforms .platform-partners li {
    height: 56px;
  }
  #platforms .platform-partners img {
    height: 26px;
    max-width: 130px;
  }
  #platforms .platform-partners img.is-square {
    height: 56px;
  }
  #platforms .platform-partners span {
    font-size: 20px;
  }
  #platforms .platform-foot {
    flex-direction: column;
    align-items: flex-start;
    margin-top: 48px;
  }
  #platforms .platform-host {
    font-size: 13px;
  }
  #platforms .platform-play {
    flex-wrap: wrap;
    row-gap: 16px;
  }
  #platforms .platform-qr {
    flex-basis: 100%;
  }
  #platforms .platform-play > span {
    font-size: 15px;
  }
  #platforms .platform-play-logo {
    height: 36px;
  }
  #platforms .platform-play a img {
    width: 64px;
    height: 64px;
  }
}

/* ===== [GUIDE] 티켓 안내: 관람 조건 아래 유의 문구 ===== */
html body #guide .ticket-pass .ticket-pass-notes {
  margin: 0 !important;
  padding: 16px 32px 24px !important;
  list-style: none !important;
}
html body #guide .ticket-pass .ticket-pass-notes li {
  margin: 0 !important;
  padding: 0 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
  color: #e0364f !important;
  word-break: keep-all;
}
html body #guide .ticket-pass .ticket-pass-notes li:before,
html body #guide .ticket-pass .ticket-pass-notes li::marker {
  content: none !important;
}
@media (max-width: 800px) {
  html body #guide .ticket-pass .ticket-pass-notes {
    padding: 12px 20px 20px !important;
  }
  html body #guide .ticket-pass .ticket-pass-notes li {
    font-size: 13px !important;
  }
  /* 티켓 이름이 길어져 양옆 장식(✦ / TICKET)과 겹치지 않게 한다 */
  html body #guide .ticket-option > b {
    padding-left: 34px !important;
    padding-right: 52px !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
    text-align: center !important;
    word-break: keep-all !important;
  }
}

/* ===== [GUIDE] 티켓 안내: WE PASS / WE ALL PASS 비교표 ===== */
html body #guide .pass-compare-wrap {
  max-width: 860px;
  margin: 24px 0 58px;
}
html body #guide .pass-compare {
  width: 100% !important;
  table-layout: fixed;
  border-collapse: collapse !important;
  background: #fff !important;
  color: #15151a !important;
}
html body #guide .pass-compare th,
html body #guide .pass-compare td {
  padding: 16px 12px !important;
  border: 1px solid #5b5961 !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  text-align: center !important;
  vertical-align: middle !important;
  color: #15151a !important;
  word-break: keep-all;
}
html body #guide .pass-compare thead th {
  background: #15151a !important;
  color: #fff !important;
  font-size: 18px !important;
  font-weight: 900 !important;
}
html body #guide .pass-compare thead th.is-pass {
  background: #a8f0c6 !important;
  color: #15151a !important;
}
html body #guide .pass-compare thead th.is-all {
  background: #6464e6 !important;
  color: #fff !important;
}
html body #guide .pass-compare tbody th {
  width: 34%;
  background: #f1efe9 !important;
  font-weight: 800 !important;
}
html body #guide .pass-compare td.is-all {
  background: #f1f0fd !important;
}
html body #guide .pass-compare td strong {
  font-weight: 900 !important;
  color: inherit !important;
}
html body #guide .pass-compare .is-yes {
  font-size: 20px;
  font-weight: 900;
  color: #6464e6;
}
html body #guide .pass-compare .is-no {
  font-size: 18px;
  font-weight: 900;
  color: #9a98a3;
}
html body #guide .pass-compare .pass-compare-group th {
  padding: 12px !important;
  background: #15151a !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 900 !important;
  letter-spacing: 0.04em;
}
@media (max-width: 800px) {
  html body #guide .pass-compare-wrap {
    margin: 16px 0 44px;
  }
  html body #guide .pass-compare th,
  html body #guide .pass-compare td {
    padding: 12px 6px !important;
    font-size: 13px !important;
  }
  html body #guide .pass-compare thead th {
    font-size: 14px !important;
  }
  html body #guide .pass-compare .pass-compare-group th {
    padding: 10px 6px !important;
    font-size: 13px !important;
  }
}

/* ===== [GUIDE] 티켓 안내: 두 카드의 제목·조건·유의 문구·티켓 줄 높이 맞춤 ===== */
/* 제목 뒤 "오전권 / 오후권"은 작게 한 줄 아래로 내려 제목 영역이 길어지지 않게 한다 */
html body #guide .ticket-pass header .ticket-pass-sub {
  display: block;
  margin-top: 10px;
  font-size: 0.5em;
  line-height: 1.2;
  letter-spacing: -0.02em;
}
/* 두 카드가 같은 줄 높이를 나눠 쓰도록 바깥 격자의 줄을 그대로 물려받는다 */
@media (min-width: 801px) {
  html body #guide .ticket-pass-grid > .ticket-pass,
  html body #guide .ticket-pass-grid > .ticket-pass.is-all {
    grid-row: span 4 !important;
    grid-template-rows: subgrid !important;
    row-gap: 0 !important;
  }
  html body #guide .ticket-pass-grid > .ticket-pass > dl {
    align-self: start !important;
  }
}
