.guest-profile { padding: 60px 0 80px !important; }
.guest-profile-heading { text-align: center; margin-bottom: 38px; }
.guest-profile-heading .en { color: #a47b36; margin-bottom: 16px; }
.guest-profile-role { margin-bottom: 10px; font-size: 16px; }
.guest-profile-heading h2 { color: #963b61; margin: 0; font-size: 36px; }
.guest-profile-heading h2 span { font-size: 18px; margin-left: 8px; }
.guest-profile-body { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 48px; padding-top: 32px; border-top: 1px solid #dac6a9; }
.guest-profile-body p { font-size: 16px; line-height: 2.1; margin-bottom: 24px; }
.guest-profile-body .guest-profile-closing { color: #963b61; font-weight: 600; }
@media(max-width:760px) {
  .guest-profile { padding: 36px 0 56px !important; }
  .guest-profile-heading { margin-bottom: 26px; }
  .guest-profile-role { font-size: 14px; }
  .guest-profile-heading h2 { font-size: 30px; }
  .guest-profile-body { grid-template-columns: 1fr; gap: 0; padding-top: 24px; }
}

.first-view > .hero-event {
  display: none;
}

@media (max-width: 760px) {
  .first-view > .hero-event {
    display: block;
  }
}

/* Visible, elegant feather motion throughout the page */
section:not(.first-view)::after {
  background-position: 46% -620px;
  background-size: min(68vw, 590px) auto;
  opacity: .23;
  filter: drop-shadow(0 3px 7px rgba(184, 139, 64, .14));
  animation: page-feathers-visible 25s ease-in-out infinite;
}

section.ivory::after {
  opacity: .30;
}

section.wine-bg::after {
  opacity: .25;
}

@keyframes page-feathers-visible {
  0% { background-position: 45% -620px; }
  50% { background-position: 55% 120px; }
  100% { background-position: 47% 900px; }
}

@media (max-width: 760px) {
  section:not(.first-view)::after {
    background-size: 118vw auto;
    opacity: .25;
  }

  section.ivory::after {
    opacity: .32;
  }

  section.wine-bg::after {
    opacity: .27;
  }
}

/* Keep the photographic first view airy while lifting the type above the image. */
@media (max-width: 760px) {
  .hero-copy {
    isolation: isolate;
  }

  .hero-copy::before {
    content: "";
    position: absolute;
    inset: -8px -20px -14px;
    z-index: -1;
    background: radial-gradient(ellipse at 50% 43%,
      rgba(255, 255, 255, .98) 0%,
      rgba(255, 252, 248, .84) 46%,
      rgba(255, 249, 245, .44) 65%,
      transparent 82%);
    filter: blur(2px);
    pointer-events: none;
  }

  .hero-brand {
    margin: 0 0 4px;
    color: #8f642b;
    font: 600 13px/1.2 "Cormorant Garamond", serif;
    letter-spacing: .28em;
    text-indent: .28em;
    text-shadow: 0 1px 8px rgba(255, 255, 255, .98);
  }

  .hero-copy h1 {
    color: #ad1f67;
    text-shadow: 0 2px 7px #fff, 0 0 18px rgba(255, 255, 255, .98), 0 1px 1px rgba(91, 28, 57, .18);
  }

  .hero-message {
    background: linear-gradient(90deg, transparent, rgba(255, 253, 249, .96) 12%, rgba(255, 253, 249, .96) 88%, transparent);
    color: #34212d;
    text-shadow: 0 1px 5px #fff, 0 0 12px #fff;
  }

  .hero-title {
    text-shadow: 0 1px 6px #fff, 0 0 14px rgba(255, 255, 255, .98);
  }
}

.community .cta {
  font-size: 23px;
}

.community .cta small {
  font-size: 15px;
}

.change-placeholder {
  font-size: clamp(24px, 3.2vw, 42px);
}

@media (max-width: 760px) {
  .change-placeholder {
    font-size: clamp(17px, 4.8vw, 23px);
    letter-spacing: .02em;
  }

  .community .cta {
    font-size: 20px;
  }

  .community .cta small {
    font-size: 14px;
  }

  .hero-quick-cta a,
  .mobile-cta a {
    font-size: 20px;
  }
}

.opening-main-line {
  white-space: nowrap;
}

.keep-line {
  display: inline-block;
  white-space: nowrap;
}

.role-mobile { display:none; }
.change-lead { max-width:540px; margin:0; line-height:2; }
.team .heading h2 { font-size:38px; }

@media (min-width:761px) {
  .team-member { min-height:108px; padding-right:8px; padding-left:8px; }
  .team-role { font-size:11px; line-height:1.55; }
  .team-host .team-role { font-size:10px; }
}

@media (max-width:760px) {
  .role-pc { display:none; }
  .role-mobile { display:inline; }
  .change-lead { margin-right:auto; margin-left:auto; line-height:1.9; text-align:left; }
  .team .heading h2 { font-size:25px; }
}

.opening-main-line em {
  position: relative;
  color: #b45f70;
  font-style: normal;
}

.opening-main-line em::after {
  content: "";
  position: absolute;
  right: 2%;
  bottom: -.2em;
  left: 2%;
  height: 1px;
  background: linear-gradient(90deg, transparent, #d29a72 16%, #b45f70 50%, #d29a72 84%, transparent);
}

@media (max-width: 760px) {
  .opening h2 {
    font-size: clamp(21px, 6.1vw, 27px);
    letter-spacing: .025em;
  }

  .community .heading h2 {
    font-size: clamp(20px, 5.8vw, 26px);
    letter-spacing: .015em;
  }
}

/* Lighter editorial placeholders until the original event photos arrive. */
.editorial-placeholder {
  position: relative;
  display: flex;
  min-height: 360px;
  padding: 58px 44px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid #f0d39b;
  background: linear-gradient(135deg, #e8bd91 0%, #c98282 42%, #aa5e68 72%, #8d4e5b 100%);
  color: #fff;
  font-size: clamp(28px, 3.8vw, 48px);
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: .08em;
  text-align: center;
  text-shadow: 0 2px 6px rgba(91, 41, 53, .25);
}

.editorial-placeholder::after {
  content: "✦";
  position: absolute;
  right: 24px;
  bottom: 18px;
  color: rgba(255, 241, 207, .62);
  font-size: 28px;
}

.portrait,
.wide-photo {
  padding: 8px;
  border: 1px solid rgba(190, 145, 73, .5);
  background: rgba(255, 253, 247, .56);
}

.portrait::after {
  content: none;
}

@media (max-width: 760px) {
  .hero-copy {
    justify-content: center;
    padding: 30px 0 8px;
  }

  .hero-brand {
    margin-bottom: 7px;
  }

  .editorial-placeholder {
    min-height: 235px;
    padding: 38px 22px;
    font-size: clamp(21px, 6vw, 29px);
    line-height: 1.55;
    letter-spacing: .04em;
  }

  .editorial-placeholder::after {
    right: 16px;
    bottom: 12px;
    font-size: 21px;
  }
}

@media (prefers-reduced-motion: reduce) {
  section:not(.first-view)::after {
    animation: none;
    background-position: center top;
  }
}

/* Rose-gold conversion buttons: warm gold with a restrained pink cast. */
.cta,
.cta.gold,
.mobile-cta a {
  border-color: #f0d39b;
  background: linear-gradient(135deg, #e8bd91 0%, #c98282 42%, #aa5e68 72%, #8d4e5b 100%);
  box-shadow: 0 12px 30px rgba(139, 73, 83, .27), inset 0 1px 0 rgba(255, 244, 220, .58);
  color: #fff;
}

.cta small {
  color: #fff1cf;
}

@media (max-width: 760px) {
  .hero-quick-cta a {
    border-color: #f0d39b;
    background: linear-gradient(135deg, #e8bd91 0%, #c98282 42%, #aa5e68 72%, #8d4e5b 100%);
    box-shadow: 0 9px 24px rgba(139, 73, 83, .27), inset 0 1px 0 rgba(255, 244, 220, .58);
  }

  .hero-quick-cta small {
    color: #fff1cf;
  }

  /* Preserve the woman and wings; brighten only the immediate text areas. */
  .hero-copy::before {
    content: none;
  }

  .hero-copy h1 {
    padding: 0 18px 4px;
    background: radial-gradient(ellipse at center, rgba(255, 253, 250, .94), rgba(255, 253, 250, .55) 58%, transparent 76%);
    text-shadow: 0 1px 3px #fff, 0 0 10px rgba(255, 255, 255, .92), 0 1px 1px rgba(91, 28, 57, .22);
  }

  .hero-message {
    width: min(90%, 350px);
    background: linear-gradient(90deg, transparent, rgba(255, 253, 249, .97) 15%, rgba(255, 253, 249, .97) 85%, transparent);
  }

  .hero-title {
    filter: drop-shadow(0 0 7px rgba(255, 255, 255, .95));
  }
}

/* The venue promise now carries the former CTA's rose-gold palette. */
.venue-promise {
  display: flex;
  min-height: clamp(220px, 44vw, 500px);
  padding: 48px;
  align-items: center;
  justify-content: center;
  border: 14px solid #fff;
  outline: 2px solid rgba(255, 255, 255, .92);
  outline-offset: -30px;
  background: linear-gradient(135deg, #e8bd91 0%, #c98282 42%, #aa5e68 72%, #8d4e5b 100%);
  color: #fff;
  font-size: clamp(24px, 3.5vw, 48px);
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: .08em;
  text-align: center;
  text-shadow: 0 2px 6px rgba(91, 41, 53, .25);
}

.venue-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; align-items:stretch; }
.venue-gallery figure { position:relative; overflow:hidden; margin:0; border:1px solid rgba(190,145,73,.45); background:#fffaf6; box-shadow:0 18px 45px rgba(83,43,57,.12); }
.venue-video-card video { display:block; width:100%; height:min(54vw,610px); object-fit:cover; background:#2d2430; }
.venue-gallery .venue-video-card figcaption { position:static; padding:12px 16px; background:linear-gradient(90deg,#f8e8ec,#fffaf6); color:#7a3151; font-size:14px; font-weight:600; letter-spacing:.12em; text-align:center; }
.venue-gallery .venue-video-card figcaption span { display:block; }
.venue-detail-photo { height:280px; }
.venue-detail-photo img { width:100%; height:100%; object-fit:cover; }
.act-video { position:relative; overflow:hidden; margin:0 0 24px; border:1px solid rgba(190,145,73,.46); background:#2d2430; box-shadow:0 14px 32px rgba(83,43,57,.14); }
.act-video video { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; }
.act-video figcaption { position:static; display:flex; gap:10px; padding:10px 12px; justify-content:center; background:linear-gradient(90deg,#f8e8ec,#fffaf6); color:#7a3151; font-size:12px; font-weight:600; line-height:1.5; letter-spacing:.08em; text-align:center; }
.act-video figcaption span:first-child { color:#aa7a34; }
.venue-copy-card { position:relative; width:min(860px,calc(100% - 40px)); margin:38px auto 0; padding:38px 38px 42px; z-index:3; border-top:1px solid rgba(190,145,65,.58); border-bottom:1px solid rgba(190,145,65,.58); background:radial-gradient(ellipse at center,rgba(255,242,246,.92) 0%,rgba(255,249,246,.68) 58%,rgba(255,255,255,0) 100%); color:#4f2a3b; text-align:center; }
.venue-copy-card::before,.venue-copy-card::after { content:""; position:absolute; left:50%; width:72px; height:1px; background:linear-gradient(90deg,transparent,#c59a4a,transparent); transform:translateX(-50%); }
.venue-copy-card::before { top:17px; }
.venue-copy-card::after { bottom:18px; }
.venue-copy-mark { display:block; margin:0 0 12px; color:#b98a3c; font-size:18px; line-height:1; }
.venue-copy-card p { margin:0 0 12px; color:#8b5268; font-size:17px; letter-spacing:.11em; }
.venue-copy-card strong { display:block; font-size:clamp(25px,3vw,39px); font-weight:500; line-height:1.6; letter-spacing:.08em; }
.venue-copy-card strong span { display:block; }
.venue-copy-card strong span:first-child { color:#6f334d; }
.venue-copy-card strong span:last-child { color:#a85d72; }

/* Real event photography: editorial, warm, and privacy-conscious. */
.guest .portrait { overflow:hidden; background:#fffaf6; box-shadow:0 24px 55px rgba(106,47,71,.16); }
.guest .portrait img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 42%; }
.guest-profile-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-top:42px; }
.guest-profile-gallery figure { position:relative; overflow:hidden; margin:0; padding:7px; border:1px solid rgba(190,145,73,.46); background:#fffaf6; box-shadow:0 18px 42px rgba(85,43,59,.1); }
.guest-profile-gallery img { width:100%; height:520px; object-fit:cover; }
.guest-profile-gallery figure:first-child img { object-position:center 42%; }
.event-guest-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:18px; }
.event-guest-gallery figure { position:relative; overflow:hidden; margin:0; padding:10px; border:2px solid rgba(190,145,73,.74); background:#fffaf6; box-shadow:0 18px 45px rgba(103,48,72,.14), inset 0 0 0 3px rgba(255,255,255,.94); }
.event-guest-gallery img { width:100%; height:520px; object-fit:cover; }
.event-guest-gallery figure:first-child img { object-position:center 42%; }
.event-story-gallery { display:grid; grid-template-columns:minmax(0,1.28fr) minmax(280px,.72fr); gap:18px; margin-top:34px; }
.event-story-gallery figure { position:relative; overflow:hidden; margin:0; padding:10px; border:2px solid rgba(190,145,73,.74); background:#fffaf6; box-shadow:0 18px 45px rgba(103,48,72,.14), inset 0 0 0 3px rgba(255,255,255,.94); }
.event-story-gallery img { display:block; width:100%; height:100%; object-fit:cover; }
.event-story-main { min-height:620px; }
.event-story-main img { object-position:center; }
.event-story-side { display:grid; grid-template-rows:repeat(2,minmax(0,1fr)); gap:18px; }
.event-story-side figure { min-height:301px; }
.event-story-side figure:first-child img { object-position:center 38%; }
.event-story-side figure:last-child img { object-position:center 45%; }
.event-year-caption { margin:16px 0 0; color:#8c5c70; font-size:13px; letter-spacing:.14em; text-align:center; }
.host-moment { position:relative; overflow:hidden; margin:34px 0 0; padding:6px; border:1px solid rgba(190,145,73,.5); background:rgba(255,255,255,.64); box-shadow:0 18px 42px rgba(103,48,72,.12); }
.host-moment img { width:100%; max-height:440px; object-fit:cover; object-position:center 30%; }

/* A brighter metallic gold keeps every application button distinct and visible. */
.cta,
.cta.gold,
.mobile-cta a {
  border-color: #ffe4a0;
  background: linear-gradient(135deg, #f7d77e 0%, #e3b84e 38%, #c58c27 72%, #9d6517 100%);
  box-shadow: 0 13px 32px rgba(157, 101, 23, .32), inset 0 1px 0 rgba(255, 250, 220, .75);
  color: #442a31;
}

.cta small {
  color: #57362e;
}

@media (max-width: 760px) {
  .venue-promise {
    min-height: 205px;
    padding: 30px 20px;
    border-width: 8px;
    outline-width: 2px;
    outline-offset: -19px;
    font-size: clamp(19px, 5.6vw, 27px);
    line-height: 1.55;
    letter-spacing: .04em;
  }

  .venue-gallery { grid-template-columns:1fr; gap:14px; }
  .venue-video-card video { height:72vw; }
  .venue-gallery .venue-video-card figcaption { padding:8px 4px; font-size:10px; line-height:1.5; letter-spacing:.03em; }
  .venue-detail-photo { height:auto; }
  .venue-detail-photo img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
  .act-video { margin-bottom:20px; }
  .act-video video { aspect-ratio:4/5; }
  .act-video figcaption { flex-direction:column; gap:0; padding:8px 6px; font-size:11px; line-height:1.45; letter-spacing:.04em; }
  .venue-copy-card { width:calc(100% - 28px); margin:24px auto 0; padding:32px 8px 35px; }
  .venue-copy-card p { margin-bottom:10px; font-size:13px; letter-spacing:.04em; }
  .venue-copy-card strong { font-size:clamp(20px,5.6vw,25px); line-height:1.7; letter-spacing:.035em; }
  .guest .portrait img { aspect-ratio:4/5; }
  .guest-profile-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:28px; }
  .guest-profile-gallery figure { padding:4px; }
  .guest-profile-gallery img { height:62vw; }
  .event-guest-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:12px; }
  .event-story-gallery figure,
  .event-guest-gallery figure { padding:7px; border-width:2px; border-color:#c99b70; background:#fffdf9; box-shadow:0 8px 20px rgba(103,48,72,.16), inset 0 0 0 2px rgba(255,255,255,.98); }
  .event-guest-gallery img { height:66vw; }
  .event-story-gallery { grid-template-columns:1fr; gap:12px; margin-top:24px; }
  .event-story-main { min-height:0; }
  .event-story-main img { aspect-ratio:4/3; }
  .event-story-side { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:none; gap:10px; }
  .event-story-side figure { min-height:0; }
  .event-story-side img { aspect-ratio:3/4; }
  .event-story-gallery figcaption { right:5px; bottom:5px; max-width:calc(100% - 10px); }
  .event-year-caption { margin-top:12px; font-size:11px; }
  .host-moment { margin-top:24px; }
  .host-moment img { max-height:none; aspect-ratio:4/3; object-position:center 28%; }

  .hero-quick-cta a {
    border-color: #ffe4a0;
    background: linear-gradient(135deg, #f7d77e 0%, #e3b84e 38%, #c58c27 72%, #9d6517 100%);
    box-shadow: 0 10px 26px rgba(157, 101, 23, .34), inset 0 1px 0 rgba(255, 250, 220, .75);
    color: #442a31;
  }

  .hero-quick-cta small {
    border-right-color: rgba(68, 42, 49, .34);
    color: #57362e;
  }

  .hero-copy h1,
  .hero-message {
    background: none;
    -webkit-text-stroke: .25px rgba(255, 255, 255, .9);
  }

  .hero-copy h1 {
    font-family: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Noto Serif JP", serif;
    font-weight: 600;
    -webkit-text-stroke: 0;
    text-shadow: 0 1px 2px #fff, 0 0 7px #fff, 0 0 14px rgba(255, 255, 255, .9), 0 2px 2px rgba(82, 27, 52, .28);
  }

  .hero-message {
    padding-top: 4px;
    padding-bottom: 5px;
    text-shadow: 0 1px 2px #fff, 0 0 6px #fff, 0 0 12px rgba(255, 255, 255, .95), 0 1px 1px rgba(52, 33, 45, .25);
  }
}

/* Desktop composition using the same photograph and live copy as mobile. */
.hero-event-desktop { display: none; }
@media (min-width: 761px) {
  .first-view { flex-direction: column; align-items: center; background: #fff9f5; }
  .first-view .hero-desktop { display: none; }
  .hero-mobile {
    display: flex; position: relative; width: min(100%, 1300px);
    min-height: 720px; padding: 38px 0; overflow: hidden; align-items: center;
    background: linear-gradient(145deg, #fffdf9 0%, #fff6f8 58%, #f7e7ef 100%);
    text-align: center; color: #402939;
  }
  .hero-mobile::before {
    content: ""; position: absolute; inset: 0 0 0 auto; width: 56%;
    background: url("assets/hero-desktop-b.png") 100% center / cover no-repeat;
    box-shadow: -22px 0 44px rgba(124, 65, 88, .12);
  }
  .hero-mobile::after {
    content: ""; position: absolute; inset: 14px; z-index: 2;
    border: 1px solid rgba(190, 145, 73, .34); pointer-events: none;
  }
  .hero-mobile .floating-feathers { display: none; }
  .hero-copy { position: relative; z-index: 3; width: 44%; margin-right: 56%; padding: 0 46px; text-shadow: none; }
  .hero-brand { margin: 0 0 16px; color: #8f642b; font: 600 18px/1.3 "Cormorant Garamond", serif; letter-spacing: .28em; }
  .hero-copy h1 { margin: 0; color: #ad1f67; font-family: "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif; font-size: clamp(42px, 4.5vw, 62px); font-weight: 600; line-height: 1.2; letter-spacing: .03em; text-shadow: 0 1px 6px #fff; }
  .hero-message { margin: 21px auto 0; padding: 13px 0; border-top: 1px solid #ccb087; border-bottom: 1px solid #ccb087; font-size: clamp(17px, 1.75vw, 22px); line-height: 1.6; letter-spacing: .09em; }
  .hero-message span { color: #a47b36; font-size: 1.2em; }
  .hero-ornament { margin: 12px auto 0; color: #b68942; line-height: 1; }
  .hero-kicker { margin: 14px 0 4px; color: #ad4272; font-size: 17px; letter-spacing: .25em; }
  .hero-title { margin: 0; color: #96275e; font-size: clamp(25px, 3vw, 39px); font-weight: 600; line-height: 1.3; }
  .hero-title strong { color: #8d6030; font: 600 1.6em/1.1 "Cormorant Garamond", serif; letter-spacing: .06em; }
  .first-view > .hero-event { display: none; }
  .hero-event-desktop { display: block; margin: 17px auto 0; padding-top: 14px; border-top: 1px solid #d6bf9e; }
  .hero-date { margin: 0; color: #402939; font: 600 37px/1.2 "Cormorant Garamond", serif; }
  .hero-date small { font: 18px "Noto Serif JP", serif; }
  .hero-place { width: fit-content; max-width: 100%; margin: 8px auto 0; padding: 8px 24px; border-radius: 24px; background: linear-gradient(90deg, transparent, rgba(255,250,246,.96) 12%, rgba(255,250,246,.96) 88%, transparent); color: #58233d; font-size: 20px; font-weight: 600; line-height: 1.6; text-shadow: none; }
  .hero-quick-cta { display: block; width: 100%; padding: 20px 24px 26px; }
  .hero-quick-cta a { display: flex; align-items: center; justify-content: center; gap: 20px; width: min(520px,100%); min-height: 76px; margin: auto; border: 1px solid #ffe4a0; border-radius: 38px; background: linear-gradient(135deg,#f9df91 0%,#e9c363 45%,#cf9f38 100%); color: #442a31; font-size: 24px; font-weight: 600; text-decoration: none; box-shadow: 0 9px 24px rgba(173,132,55,.18); }
  .hero-quick-cta small { padding-right: 20px; border-right: 1px solid rgba(68,42,49,.34); font-size: 16px; }
}

/* Mobile-only feather drift; no layout or content changes. */
@media (max-width: 760px) and (prefers-reduced-motion: no-preference) {
  section:not(.first-view)::after {
    animation: mobile-feather-drift 16s linear infinite;
  }
}
@keyframes mobile-feather-drift {
  0% { background-position: calc(50% - 14px) 0; }
  50% { background-position: calc(50% + 14px) 104.833vw; }
  100% { background-position: calc(50% - 14px) 209.666vw; }
}

/* Testimonial headlines let readers grasp each transformation before the full story. */
.voice-grid blockquote { position:relative; padding-top:34px; }
.voice-grid blockquote::before { content:none; }
.voice-label { display:block; margin-bottom:11px; color:#aa7a34; font:600 11px/1.4 "Noto Serif JP",serif; letter-spacing:.18em; }
.voice-grid h3 { min-height:4.7em; margin:0 0 22px; padding-bottom:18px; border-bottom:1px solid #eadfd3; color:#8f315c; font-size:20px; font-weight:600; line-height:1.65; letter-spacing:.055em; }
.voice-grid p { color:#463840; line-height:2; }

@media (min-width:761px) {
  .voice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .voice-grid blockquote { display:grid; grid-template-columns:1fr 82px; column-gap:16px; align-items:center; }
  .voice-label { grid-column:1; grid-row:1; margin:0; }
  .voice-avatar { position:static; grid-column:2; grid-row:1; margin:0; }
  .voice-grid h3 { grid-column:1/-1; grid-row:2; min-height:0; margin-top:14px; padding-right:0; white-space:nowrap; font-size:18px; letter-spacing:.025em; }
  .voice-grid blockquote > p,
  .voice-grid blockquote > cite { grid-column:1/-1; }
  .voice-grid blockquote:last-child { grid-column:1/-1; width:calc(50% - 11px); justify-self:center; }
}

@media (max-width:760px) {
  .voice-grid blockquote { padding-top:28px; }
  .voice-label { margin-bottom:9px; font-size:11px; }
  .voice-grid h3 { min-height:0; margin-bottom:18px; padding-bottom:15px; font-size:19px; line-height:1.6; }
}

/* The guest is part of the programme, followed by a compact editorial collage. */
.special-guest-spotlight { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr); gap:36px; margin:42px 0 36px; padding:31px 34px; align-items:center; border:1px solid rgba(190,145,73,.62); background:rgba(255,252,248,.88); box-shadow:0 20px 48px rgba(103,48,72,.13); }
.festival-description { max-width:820px; margin:24px auto 0; color:#513642; font-size:16px; line-height:2; letter-spacing:.06em; }
.festival-description span { display:block; }
.festival-name { color:#b43d78; }
.opening-price { margin-top:18px; color:#6f5864; font-size:14px; }
.arrival p { margin:0; }
.arrival p + p { margin-top:8px; }
.festival .heading .festival-lead { display:flex; max-width:660px; margin:22px auto 0; align-items:center; justify-content:center; gap:18px; color:#7b2049 !important; font-size:20px; font-weight:600; line-height:1.9; letter-spacing:.12em; }
.festival .heading .festival-lead::before,
.festival .heading .festival-lead::after { content:""; width:54px; height:1px; flex:0 0 54px; background:linear-gradient(90deg,transparent,#bd9149); }
.festival .heading .festival-lead::after { background:linear-gradient(90deg,#bd9149,transparent); }
.act-video .video-play { position:absolute; left:50%; top:42%; z-index:2; display:flex; min-width:150px; padding:12px 20px; align-items:center; justify-content:center; gap:10px; transform:translate(-50%,-50%); border:1px solid rgba(255,255,255,.72); border-radius:999px; background:rgba(54,24,39,.78); box-shadow:0 8px 24px rgba(0,0,0,.24); color:#fff; font:500 14px/1.3 "Noto Serif JP",serif; letter-spacing:.08em; cursor:pointer; backdrop-filter:blur(4px); transition:opacity .2s; }
.act-video .video-play span { font-size:12px; }
.act-video.is-playing .video-play { opacity:0; }
.act-video.is-playing:hover .video-play,.act-video.is-playing .video-play:focus-visible { opacity:1; }
.special-guest-item span { display:inline-block; margin:0 10px 4px 0; padding:3px 9px; border:1px solid rgba(151,48,94,.38); color:#9b315f; font-family:Georgia,serif; font-size:10px; line-height:1.2; letter-spacing:.12em; vertical-align:middle; }
.special-guest-copy .en { margin-bottom:14px; }
.special-guest-copy h3 { margin:0 0 18px; color:#8f315c; font-size:32px; font-weight:600; line-height:1.55; }
.special-guest-copy .guest-return-note { display:inline-block; margin:-4px 0 18px; padding:4px 13px; border-top:1px solid #c8a260; border-bottom:1px solid #c8a260; color:#8f315c; font-size:13px; font-weight:600; letter-spacing:.14em; }
.special-guest-copy h4 { margin:4px 0 18px; color:#8f315c; font-size:27px; font-weight:600; letter-spacing:.08em; }
.special-guest-copy h4 span { margin-left:7px; font-size:15px; }
.special-guest-copy > p:not(.en):not(.guest-profile-role) { margin-bottom:12px; font-size:14px; line-height:1.9; }
.special-guest-copy .guest-profile-role { margin-bottom:0; color:#705663; font-size:13px; }
.special-guest-copy .special-guest-participation { margin:-2px 0 22px !important; padding-bottom:18px; border-bottom:1px solid rgba(190,145,73,.38); color:#70475c; font-size:14px !important; }
.special-guest-copy .special-guest-closing { margin-top:18px !important; color:#8f315c; font-weight:600; }
.special-guest-spotlight figure { overflow:hidden; margin:0; padding:8px; border:1px solid rgba(190,145,73,.6); background:#fff; }
.special-guest-spotlight img { width:100%; height:410px; object-fit:cover; object-position:center 42%; }
.event-gallery-collage { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-rows:repeat(2,220px); gap:12px; margin-top:18px; }
.event-memories { padding-top:78px !important; padding-bottom:88px !important; }
.venue { padding-bottom:48px !important; }
.event-memories-heading { margin:0 0 28px; text-align:center; }
.event-memories-heading .en { margin-bottom:14px; }
.event-memories-heading h2 { margin:0; color:#7b2049; font-size:clamp(28px,3.2vw,42px); }
.event-gallery-collage figure { overflow:hidden; margin:0; padding:6px; border:1px solid #c79e6c; background:#fffdf9; box-shadow:0 10px 24px rgba(103,48,72,.1); }
.event-gallery-collage img { width:100%; height:100%; object-fit:cover; }
.event-collage-main { grid-column:span 2; grid-row:span 2; border-width:2px !important; border-color:#b98445 !important; }
.event-gallery-collage figure:nth-child(2) img { object-position:center 38%; }
.event-gallery-collage figure:nth-child(3) img { object-position:center 45%; }
.event-gallery-collage figure:nth-child(4) img { object-position:center 42%; }

@media (max-width:760px) {
  .special-guest-spotlight { grid-template-columns:1fr; gap:20px; margin:30px 0 26px; padding:22px 18px; }
  .festival-description { margin-top:20px; font-size:15px; line-height:1.9; }
  .festival-description span { display:block; }
  .arrival { text-align:left; font-size:14px; line-height:2; letter-spacing:0; word-break:auto-phrase; }
  .arrival p { margin:0; }
  .arrival p + p { margin-top:14px; }
  .festival .heading .festival-lead { display:block; margin-top:17px; padding:13px 8px; border-top:1px solid rgba(189,145,73,.55); border-bottom:1px solid rgba(189,145,73,.55); font-size:17px; line-height:1.8; }
  .festival .heading .festival-lead::before,
  .festival .heading .festival-lead::after { display:none; }
  .special-guest-copy h3 { font-size:25px; }
  .special-guest-copy h4 { font-size:24px; }
  .special-guest-copy > p:not(.en):not(.guest-profile-role) { font-size:15px; }
  .act-video .video-play { display:none; }
  .special-guest-spotlight img { height:auto; aspect-ratio:4/5; }
  .event-gallery-collage { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:none; gap:8px; margin-top:14px; }
  .event-memories { padding-top:52px !important; padding-bottom:58px !important; }
  .venue { padding-bottom:28px !important; }
  .event-memories { padding-top:36px !important; }
  .event-memories-heading { margin-bottom:20px; }
  .event-memories-heading h2 { font-size:27px; line-height:1.55; }
  .event-gallery-collage figure { padding:6px; }
  .event-gallery-collage img { aspect-ratio:3/4; }
  .event-collage-main { grid-column:1/-1; grid-row:auto; }
  .event-collage-main img { aspect-ratio:4/3; }
}

/* Keep the guest credible but secondary to the Carnet Award experience. */
.guest-profile-heading { margin-bottom:28px; }
.guest-profile-heading h2 { font-size:32px; }
.guest-profile-body { display:block; width:min(760px,100%); margin:0 auto; padding-top:26px; }
.guest-profile-body p { margin:0 0 18px; line-height:2; }
.guest-profile-body .guest-profile-closing { margin:24px 0 0; text-align:center; }

@media (max-width:760px) {
  .guest-profile-heading { margin-bottom:22px; }
  .guest-profile-heading h2 { font-size:28px; }
  .guest-profile-body { padding-top:20px; }
  .guest-profile-body p { margin-bottom:15px; font-size:15px; line-height:1.95; }
  .guest-profile-body .guest-profile-closing { margin-top:20px; }
}

/* Final editorial pass: shorter rhythm, clearer photo hierarchy and lighter mobile CTA. */
section:not(.first-view) { padding-top:104px; padding-bottom:104px; }
.festival { padding-top:96px !important; padding-bottom:96px !important; }
.guest-profile { padding-top:70px !important; padding-bottom:78px !important; }
.event-year-caption { margin:2px 0 0; color:#7f405c; font-size:15px; font-weight:600; letter-spacing:.16em; text-align:center; }
.event-story-gallery { gap:16px; margin-top:18px; }
.event-story-side { gap:16px; }
.event-guest-gallery { gap:16px; margin-top:16px; }
.event-story-main { border-color:#b98445 !important; box-shadow:0 20px 48px rgba(103,48,72,.18), inset 0 0 0 3px rgba(255,255,255,.96) !important; }
.event-story-side figure,
.event-guest-gallery figure { border-color:#c9a477; box-shadow:0 11px 28px rgba(103,48,72,.11), inset 0 0 0 2px rgba(255,255,255,.96); }

@media (max-width:760px) {
  section:not(.first-view) { padding-top:64px; padding-bottom:64px; }
  .festival { padding-top:58px !important; padding-bottom:58px !important; }
  .guest-profile { padding-top:52px !important; padding-bottom:58px !important; }
  .event-year-caption { margin:0; font-size:13px; letter-spacing:.12em; }
  .event-story-gallery { gap:8px; margin-top:14px; }
  .event-story-side,
  .event-guest-gallery { gap:8px; }
  .event-guest-gallery { margin-top:8px; }
  .event-story-gallery figure,
  .event-guest-gallery figure { padding:6px; }
  .mobile-cta { left:22px; right:22px; bottom:8px; }
  .mobile-cta a { padding:6px 12px; min-height:40px; border-radius:20px; font-size:14px; box-shadow:0 6px 18px rgba(91,57,20,.25); }
}

/* Mobile refinement: compact guest portrait, quiet memories caption, illustrated voices. */
.event-memories-caption { margin:18px 0 0; color:#795767; font-size:13px; line-height:1.6; letter-spacing:.1em; text-align:center; }
.voice-grid blockquote { position:relative; }
.voice-avatar { position:absolute; top:28px; right:25px; width:82px; height:82px; padding:4px; border:1px solid rgba(190,145,73,.5); border-radius:50%; background:linear-gradient(145deg,#fffdfa,#f9eaf2); object-fit:contain; box-shadow:0 8px 20px rgba(103,48,72,.12); }
.voice-grid h3 { padding-right:92px; }
.act-title-separator { display:none; }

@media (min-width:761px) {
  .voice-grid .voice-avatar { position:static; grid-column:2; grid-row:1; margin:0; }
  .voice-grid h3 { padding-right:0; }
}

@media (max-width:760px) {
  .opening .gold-line { margin-bottom:0; }
  .special-guest-spotlight { position:relative; display:block; padding-top:20px; }
  .special-guest-copy { display:flex; flex-direction:column; }
  .special-guest-copy .guest-return-note { order:-3; display:block; max-width:none; margin:0 0 22px; padding:9px 12px; border:0; background:linear-gradient(100deg,#a82d69,#d3709d); box-shadow:0 8px 20px rgba(133,45,85,.2); color:#fff; font-size:15px; text-align:center; letter-spacing:.18em; }
  .special-guest-copy .en { order:-2; margin-bottom:10px; }
  .special-guest-copy h3 { order:-1; }
  .special-guest-spotlight figure { position:absolute; top:91px; right:18px; width:34%; padding:5px; }
  .special-guest-spotlight img { width:100%; height:auto; aspect-ratio:4/5; object-position:center 35%; }
  .special-guest-copy .en,
  .special-guest-copy h3 { max-width:58%; }
  .special-guest-copy h3 { margin-bottom:22px; color:#7d244d; font-size:18px; line-height:1.6; letter-spacing:.08em; }
  .special-guest-copy .guest-title-name { display:none; }
  .special-guest-copy .guest-profile-role { margin-top:24px; padding-top:16px; border-top:1px solid rgba(190,145,73,.42); font-size:12px; letter-spacing:.04em; }
  .special-guest-copy h4 { margin-top:6px; font-size:25px; letter-spacing:.1em; }
  .acts h3 { white-space:nowrap; }
  .acts h3 br { display:none; }
  .acts h3 .act-title-separator { display:inline-block; width:.55em; }
  .special-guest-item span { display:block; width:max-content; margin:0 0 10px; }
  .event-memories-caption { margin-top:14px; font-size:12px; }
  .voice-grid blockquote { display:grid; grid-template-columns:1fr 78px; column-gap:14px; align-items:center; }
  .voice-label { grid-column:1; grid-row:1; margin:0; }
  .voice-avatar { position:static; grid-column:2; grid-row:1; width:78px; height:78px; margin:0; }
  .voice-grid h3 { grid-column:1/-1; grid-row:2; width:100%; min-height:0; margin-top:14px; padding-right:0; text-wrap:balance; word-break:auto-phrase; }
  .voice-grid blockquote > p,
  .voice-grid blockquote > cite { grid-column:1/-1; }
}

/* Keep the opening compact and visually centered between the adjacent sections. */
.opening { position:relative; overflow:hidden; }

@media (min-width:761px) {
  .opening { padding-top:78px !important; padding-bottom:52px !important; }
  .opening h2 { margin-bottom:0; }
  .festival { padding-top:58px !important; }
}

@media (max-width:760px) {
  .opening { padding-bottom:48px !important; }
  .festival { padding-top:50px !important; }
}

@media (min-width:761px) {
  .details .detail-box > h2 { font-size: 48px; }
  .details .detail-grid { margin-top: 44px; }
  .details .detail-grid dl { padding: 34px 36px; }
  .details .detail-grid dt { margin-bottom: 12px; font-size: 14px; letter-spacing: .2em; }
  .details .detail-grid dd { font-size: 17px; line-height: 1.9; }
  .details .detail-grid strong { font-size: 24px; }
  .details .detail-grid small { margin-top: 3px; font-size: 14px; }
  .details .arrival { max-width: 980px; margin: 38px auto 0; color: #624d58; font-size: 17px; line-height: 2.05; letter-spacing: .055em; }
  .details .arrival p + p { margin-top: 12px; }
}

@media (max-width:760px) {
  .opening .gold-line {
    height: 88px;
    margin-top: 24px;
    margin-bottom: -52px;
  }
}
