.hero { position: relative; min-height: 690px; isolation: isolate; overflow: hidden; }
.hero::before { position: absolute; z-index: -2; inset: -96px 0 0 0; background: url("../images/hero-hands.jpg") center bottom / 100% auto no-repeat, #fffdf8; background-blend-mode: multiply; content: ""; }
.hero::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, #fffdf8 0%, #fffdf8 30%, rgba(255,253,248,.9) 42%, rgba(255,253,248,.55) 55%, rgba(255,253,248,0) 70%); content: ""; }
.hero-inner { display: flex; min-height: 640px; align-items: center; }
.hero-copy { width: 54%; padding: 64px 0 82px; }
.hero-kicker { display: inline-flex; align-self: flex-start; align-items: center; gap: 12px; padding: 8px 14px; white-space: nowrap; color: var(--orange-dark); background: rgba(255,255,255,.8); border: 1px solid rgba(242,140,24,.25); border-radius: 999px; font-size: 12px; font-weight: 700; }
.hero-title { margin: 24px 0 18px; color: var(--orange-dark); font-size: clamp(42px, 4vw, 60px); font-weight: 400; line-height: 1.48; letter-spacing: .1em; }
.hero-lead { max-width: 570px; margin: 0; font-size: 17px; line-height: 2.15; text-shadow: 0 1px 0 rgba(255,255,255,.6); }
.hero-scroll { position: absolute; bottom: 34px; left: max(24px, calc((100% - min(calc(100% - 48px), var(--container))) / 2)); display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 10px; letter-spacing: .18em; }
.hero-scroll::before { width: 54px; height: 1px; background: var(--orange); content: ""; }
.wave-divider { position: absolute; z-index: 3; right: -3%; bottom: -28px; left: -3%; height: 76px; background: var(--bg); border-radius: 50% 55% 0 0 / 42% 44% 0 0; }
.wave-divider::before { position: absolute; top: 4px; right: 0; left: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--orange) 18%, var(--orange) 72%, transparent); content: ""; transform: rotate(-.8deg); }

.upcoming-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.upcoming-card { position: relative; min-height: 330px; overflow: hidden; color: #fff; border-radius: var(--radius); box-shadow: var(--shadow); isolation: isolate; }
.upcoming-card::after { position: absolute; z-index: -1; inset: 28% 0 0; background: linear-gradient(0deg, rgba(45,33,26,.88), rgba(45,33,26,.02)); content: ""; }
.upcoming-card img { position: absolute; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 300ms ease; }
.upcoming-card:hover img { transform: scale(1.03); }
.upcoming-card > a { position: absolute; inset: 0; z-index: 2; }
.upcoming-status { position: absolute; top: 16px; left: 16px; padding: 7px 12px; color: var(--orange-dark); background: rgba(255,255,255,.93); border-radius: 999px; font-size: 11px; font-weight: 700; }
.upcoming-content { position: absolute; right: 20px; bottom: 20px; left: 20px; }
.upcoming-content small { opacity: .85; letter-spacing: .1em; }
.upcoming-content h3 { margin: 4px 0; font-size: 21px; line-height: 1.4; }
.upcoming-content p { margin: 0; font-size: 12px; line-height: 1.6; }

.about-grid { display: grid; grid-template-columns: .93fr 1.07fr; align-items: center; gap: 72px; }
.about-grid--solo { grid-template-columns: 1fr; max-width: 760px; text-align: center; }
.about-grid--solo .about-copy p { margin-left: auto; margin-right: auto; }
.about-copy .section-title { color: var(--orange-dark); }
.about-tagline { margin: 18px 0 20px; color: var(--orange-dark); font-size: 18px; font-weight: 700; }
.photo-cluster { position: relative; min-height: 520px; }
.bubble { position: absolute; overflow: hidden; margin: 0; border: 7px solid var(--bg); border-radius: 50%; box-shadow: var(--shadow); }
.bubble img { width: 100%; height: 100%; object-fit: cover; }
.bubble--1 { top: 32px; right: 86px; width: 245px; height: 245px; }
.bubble--2 { top: 215px; right: 7px; width: 198px; height: 198px; }
.bubble--3 { bottom: 8px; left: 150px; width: 230px; height: 230px; }
.bubble--4 { bottom: 34px; left: 8px; width: 178px; height: 178px; }
.flower-dots { position: absolute; top: 120px; left: 22px; width: 86px; height: 86px; background: radial-gradient(circle, var(--yellow) 0 3px, transparent 4px) 0 0 / 22px 22px; opacity: .65; }

.fields-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.field-card { padding: 22px 18px 24px; background: rgba(255,255,255,.82); border: 1px solid rgba(233,217,191,.7); border-radius: 24px; text-align: center; }
.field-card:nth-child(1) { color: var(--orange-dark); }
.field-card:nth-child(2) { color: var(--coral); }
.field-card:nth-child(3) { color: var(--green); }
.field-card:nth-child(4) { color: var(--blue); }
.field-card:nth-child(5) { color: #d39b10; }
.field-illust { display: block; width: 100%; max-width: 168px; height: auto; margin: 0 auto 10px; }
.field-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.field-card h3 { margin: 0; font-size: 19px; }
.field-en { display: block; margin-top: 2px; font-size: 11px; letter-spacing: .1em; }
.field-card p { min-height: 100px; margin: 4px 0 12px; color: var(--brown); font-size: 13px; line-height: 1.8; }
.field-events { display: block; padding-top: 14px; color: var(--brown); border-top: 1px solid rgba(233,217,191,.8); font-size: 12px; font-weight: 700; }

.event-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 22px; }
.event-card { position: relative; overflow: hidden; background: var(--white); border: 1px solid rgba(233,217,191,.72); border-radius: var(--radius); box-shadow: 0 12px 34px rgba(88,62,33,.08); }
.event-card img { width: 100%; height: 220px; object-fit: cover; transition: transform 300ms ease; }
.event-card:hover img { transform: scale(1.03); }
.event-card-body { padding: 24px 24px 26px; }
.event-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.event-type, .event-state { font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.event-type { color: var(--orange-dark); }
.event-state { padding: 5px 9px; color: var(--orange-dark); background: var(--cream); border-radius: 999px; }
.event-state--soon { color: var(--muted); background: #f2efea; }
.event-card h3 { margin: 0; font-size: 22px; line-height: 1.35; letter-spacing: .02em; }
.event-subtitle { margin: 7px 0 12px; color: var(--orange-dark); font-size: 13px; font-weight: 700; }
.event-card p:not(.event-subtitle) { min-height: 54px; margin: 0 0 18px; color: var(--muted); font-size: 13px; line-height: 1.75; }
.filter-list { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 38px; padding: 0; list-style: none; }
.filter-button { min-height: 44px; padding: 0 18px; color: var(--muted); background: #fff; border: 1px solid var(--line); border-radius: 999px; cursor: pointer; }
.filter-button.is-active { color: #fff; background: var(--orange); border-color: var(--orange); }

.memories-section {
  background:
    radial-gradient(circle at 8% 14%, rgba(247, 200, 75, .18), transparent 21%),
    radial-gradient(circle at 93% 88%, rgba(139, 174, 60, .12), transparent 18%),
    #f7f0e4;
}
.memories-section::before,
.memories-section::after {
  position: absolute;
  border: 1px solid rgba(242, 140, 24, .2);
  border-radius: 50%;
  content: "";
}
.memories-section::before { top: 62px; right: -72px; width: 180px; height: 180px; }
.memories-section::after { bottom: 42px; left: -48px; width: 118px; height: 118px; }
.memories-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 54px; }
.memories-lead { max-width: 440px; margin: 0; color: var(--muted); }
.memory-album {
  position: relative;
  display: flex;
  max-width: 1040px;
  margin: 0 auto;
  padding: 18px;
  gap: 18px;
  overflow-x: auto;
  background: #e9dac4;
  border: 1px solid rgba(190, 151, 91, .28);
  border-radius: 24px;
  box-shadow: 0 22px 60px rgba(88, 62, 33, .12);
  scroll-padding-inline: 18px;
  scroll-snap-type: x mandatory;
  scrollbar-color: rgba(242, 140, 24, .45) transparent;
  scrollbar-width: thin;
}
.memory-album::before {
  display: none;
}
.memory-page {
  position: relative;
  display: grid;
  min-width: 100%;
  aspect-ratio: 16 / 9.6;
  padding: clamp(24px, 4vw, 48px);
  overflow: hidden;
  background:
    repeating-linear-gradient(90deg, rgba(246, 172, 158, .14) 0 34px, rgba(255, 255, 255, .38) 34px 68px),
    #fff9ef;
  border: 1px solid rgba(190, 151, 91, .2);
  border-radius: 14px;
  box-shadow: inset 0 0 36px rgba(102, 70, 37, .08);
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-template-rows: repeat(4, minmax(0, 1fr));
  gap: clamp(10px, 1.6vw, 20px);
  scroll-snap-align: center;
}
.memory-page::before {
  position: absolute;
  z-index: 5;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  background: linear-gradient(90deg, rgba(117, 82, 49, .18), rgba(255, 255, 255, .82), rgba(117, 82, 49, .15));
  box-shadow: 0 0 14px rgba(82, 56, 31, .12);
  content: "";
}
.memory-page::after {
  position: absolute;
  top: 5%;
  left: 50%;
  width: 14px;
  height: 90%;
  background: linear-gradient(90deg, rgba(72, 48, 25, .08), transparent 50%, rgba(72, 48, 25, .05));
  content: "";
  transform: translateX(-50%);
}
.memory-photo {
  position: relative;
  z-index: 3;
  margin: 0;
  min-width: 0;
  min-height: 0;
  padding: 5px 5px 14px;
  background: #fff;
  border: 1px solid rgba(170, 139, 94, .18);
  border-radius: 2px;
  box-shadow: 0 8px 18px rgba(75, 53, 31, .16);
  transform: rotate(var(--photo-rotate, -1deg));
}
.memory-photo::before {
  position: absolute;
  z-index: 2;
  top: -7px;
  left: 50%;
  width: 34px;
  height: 14px;
  background: rgba(247, 200, 75, .58);
  content: "";
  transform: translateX(-50%) rotate(var(--tape-rotate, 1deg));
  clip-path: polygon(2% 14%, 100% 0, 96% 92%, 0 100%);
}
.memory-photo picture { display: block; width: 100%; height: 100%; overflow: hidden; background: #ece4d8; }
.memory-photo img { width: 100%; height: 100%; object-fit: cover; }
.memory-photo:nth-child(1) { grid-column: 1 / 3; grid-row: 1 / 3; }
.memory-photo:nth-child(2) { grid-column: 3 / 4; grid-row: 2 / 4; }
.memory-photo:nth-child(3) { grid-column: 5 / 7; grid-row: 1 / 3; }
.memory-photo:nth-child(4) { grid-column: 1 / 2; grid-row: 3 / 5; }
.memory-photo:nth-child(5) { grid-column: 2 / 4; grid-row: 3 / 5; }
.memory-photo:nth-child(6) { grid-column: 5 / 7; grid-row: 3 / 5; }
.memory-photo:nth-child(3n + 1) { --photo-rotate: -2.2deg; --tape-rotate: 2deg; }
.memory-photo:nth-child(3n + 2) { --photo-rotate: 1.7deg; --tape-rotate: -2deg; }
.memory-photo:nth-child(3n) { --photo-rotate: -.7deg; --tape-rotate: 1deg; }
.js .memory-photo.reveal { transform: translateY(16px) rotate(var(--photo-rotate, -1deg)); }
.js .memory-photo.reveal.is-visible { transform: rotate(var(--photo-rotate, -1deg)); }
.memory-swipe { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 18px 0 0; color: var(--muted); font-size: 11px; }
.memory-swipe::after { content: "→"; color: var(--orange-dark); font-size: 16px; }

.guide-panel { display: grid; grid-template-columns: .85fr 1.15fr; overflow: hidden; background: var(--white); border-radius: 38px; box-shadow: var(--shadow); }
.guide-copy { padding: 68px 56px; background: radial-gradient(circle at 0 0, rgba(247,200,75,.18), transparent 38%), var(--white); }
.guide-copy p { color: var(--muted); }
.guide-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--line); }
.guide-item { padding: 42px 32px; background: var(--cream-2); }
.guide-number { display: grid; width: 42px; height: 42px; margin-bottom: 18px; place-items: center; color: var(--white); background: var(--orange); border-radius: 50%; font-size: 13px; font-weight: 700; }
.guide-item h3 { margin: 0 0 8px; font-size: 17px; }
.guide-item p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.8; }

.future-panel { position: relative; min-height: 560px; overflow: hidden; color: var(--white); background: var(--brown); border-radius: 42px; box-shadow: var(--shadow); isolation: isolate; }
.future-panel::before { position: absolute; z-index: -2; inset: 0; background: url("../images/future-sunflower-1440.webp") center / cover; content: ""; }
.future-panel::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(42,31,25,.86) 0%, rgba(42,31,25,.73) 48%, rgba(42,31,25,.18) 100%); content: ""; }
.future-copy { width: 62%; padding: 88px 74px; }
.future-copy .eyebrow { color: var(--yellow); }
.future-copy .section-title { color: var(--white); }
.future-copy p { margin: 22px 0 0; line-height: 2.1; }

.participation-fee-section {
  overflow: hidden;
  background:
    radial-gradient(circle at 10% 18%, rgba(247, 200, 75, .18), transparent 24%),
    radial-gradient(circle at 92% 82%, rgba(139, 174, 60, .1), transparent 22%),
    var(--cream-2);
}
.participation-fee-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
  gap: clamp(44px, 7vw, 96px);
  max-width: 1040px;
  margin: 0 auto;
  padding: clamp(52px, 7vw, 82px);
  overflow: hidden;
  background: rgba(255, 255, 255, .9);
  border: 1px solid rgba(233, 217, 191, .82);
  border-radius: 42px;
  box-shadow: var(--shadow);
}
.participation-fee-card::before,
.participation-fee-card::after {
  position: absolute;
  border-radius: 50%;
  content: "";
  pointer-events: none;
}
.participation-fee-card::before {
  top: -72px;
  left: -70px;
  width: 190px;
  height: 190px;
  background: rgba(247, 200, 75, .16);
}
.participation-fee-card::after {
  right: -42px;
  bottom: -56px;
  width: 132px;
  height: 132px;
  border: 24px solid rgba(139, 174, 60, .1);
}
.participation-fee-heading { position: relative; z-index: 1; align-self: start; }
.participation-fee-icon {
  display: grid;
  width: 72px;
  height: 72px;
  margin-bottom: 24px;
  place-items: center;
  background: var(--cream);
  border-radius: 50%;
  box-shadow: 0 10px 28px rgba(88, 62, 33, .1);
  font-size: 34px;
}
.participation-fee-copy { position: relative; z-index: 1; }
.participation-fee-copy p { margin: 0 0 18px; line-height: 2.05; }
.participation-fee-copy p:last-child { margin-bottom: 0; color: var(--orange-dark); font-weight: 700; }

.faq-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: 74px; }
.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 24px 4px; cursor: pointer; font-weight: 700; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { display: grid; width: 30px; height: 30px; flex: 0 0 auto; place-items: center; color: var(--orange-dark); border: 1px solid var(--line); border-radius: 50%; content: "+"; }
.faq-item[open] summary::after { content: "−"; }
.faq-answer { padding: 0 42px 24px 4px; color: var(--muted); font-size: 14px; }

.about-hero-grid, .content-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 72px; }
.rounded-photo { width: 100%; max-height: 560px; object-fit: cover; border-radius: 42px; box-shadow: var(--shadow); }
.prose h2 { margin: 52px 0 18px; color: var(--orange-dark); font-size: 30px; font-weight: 400; }
.prose h2:first-child { margin-top: 0; }
.prose h3 { margin: 34px 0 12px; font-size: 21px; }
.prose p { margin: 0 0 20px; }

.status-pill { display: inline-flex; padding: 7px 12px; color: var(--muted); background: #f0ece6; border-radius: 999px; font-size: 11px; font-weight: 700; }
.event-detail-hero { padding: 70px 0 58px; background: radial-gradient(circle at 88% 8%, rgba(247,200,75,.2), transparent 24%), var(--cream-2); }
.event-detail-grid { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 64px; }
.event-detail-grid img { width: 100%; height: 430px; object-fit: cover; border-radius: 34px; box-shadow: var(--shadow); }
.event-detail-title { margin: 18px 0 8px; font-size: clamp(38px, 4.4vw, 62px); font-weight: 400; line-height: 1.2; letter-spacing: .02em; }
.event-detail-subtitle { margin: 0 0 20px; color: var(--orange-dark); font-size: 18px; font-weight: 700; }
.event-info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; overflow: hidden; margin-top: -26px; background: var(--line); border: 1px solid var(--line); border-radius: 28px; box-shadow: var(--shadow); }
.event-info-item { padding: 26px; background: var(--white); }
.event-info-item dt { margin-bottom: 5px; color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.event-info-item dd { margin: 0; font-weight: 700; }
.event-info-item dd a { color: var(--orange-dark); text-decoration: underline; text-underline-offset: 3px; }
.article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 72px; }
.article-body h2 { margin: 54px 0 18px; color: var(--orange-dark); font-size: 28px; font-weight: 400; }
.article-body h2:first-child { margin-top: 0; }
.article-body p { margin: 0 0 20px; }
.detail-side { position: sticky; top: calc(var(--header-height) + 24px); align-self: start; padding: 28px; background: var(--cream); border-radius: 24px; }
.detail-side h3 { margin: 0 0 12px; font-size: 18px; }
.detail-side-eyebrow { display: block; margin-bottom: 6px; color: var(--orange-dark); font-size: 11px; font-weight: 700; letter-spacing: .1em; }
.detail-side .event-log-date { display: block; margin-bottom: 8px; }
.detail-side p { margin: 0 0 18px; color: var(--muted); font-size: 12px; }
.detail-side .button { width: 100%; padding-inline: 18px; }

.empty-state { padding: 70px 30px; background: var(--cream-2); border: 1px solid var(--line); border-radius: 30px; text-align: center; }
.empty-state-mark { display: grid; width: 72px; height: 72px; margin: 0 auto 20px; place-items: center; color: #fff; background: var(--orange); border-radius: 50%; font-size: 28px; }
.form { display: grid; gap: 24px; }
.form-row { display: grid; gap: 9px; }
.form label { font-weight: 700; }
.required { margin-left: 8px; color: var(--orange-dark); font-size: 11px; }
.form input, .form textarea, .form select { width: 100%; padding: 15px 16px; color: var(--brown); background: #fff; border: 1px solid var(--line); border-radius: 12px; }
.form textarea { min-height: 180px; resize: vertical; }
.form-message { padding: 18px; color: var(--brown); background: #eef7db; border-radius: 14px; }
.legal-note { margin-bottom: 34px; padding: 20px; color: #6b573c; background: #fff2d8; border-left: 4px solid var(--orange); }
.legal-list { padding-left: 1.4em; }

@media (max-width: 1080px) {
  .upcoming-grid { grid-template-columns: repeat(2, 1fr); }
  .fields-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 900px) {
  .hero { display: flex; min-height: auto; flex-direction: column; }
  .hero::before { position: relative; z-index: 0; display: block; height: 260px; inset: auto; background-image: url("../images/hero-hands.jpg"); background-position: center bottom; background-size: contain; }
  .hero::after { display: none; }
  .hero-inner { min-height: auto; order: 2; }
  .hero-copy { width: 100%; padding: 42px 0 70px; }
  .hero-title { font-size: clamp(34px, 9vw, 44px); }
  .hero-lead { font-size: 15px; line-height: 2; }
  .hero-scroll, .wave-divider { display: none; }
  .about-grid, .guide-panel, .faq-layout, .about-hero-grid, .content-grid, .event-detail-grid, .article-layout, .participation-fee-card { grid-template-columns: 1fr; }
  .about-grid, .about-hero-grid, .content-grid { gap: 40px; }
  .photo-cluster { min-height: 430px; order: -1; }
  .bubble--1 { right: 50px; width: 210px; height: 210px; }
  .bubble--2 { width: 160px; height: 160px; }
  .bubble--3 { left: 102px; width: 190px; height: 190px; }
  .bubble--4 { width: 142px; height: 142px; }
  .fields-grid, .event-grid { grid-template-columns: repeat(2, 1fr); }
  .guide-copy { padding: 52px 38px; }
  .future-copy { width: 78%; padding: 72px 50px; }
  .event-info-grid { grid-template-columns: repeat(2, 1fr); margin-top: 0; }
  .detail-side { position: static; }
  .event-detail-grid picture { order: -1; }
}

@media (max-width: 560px) {
  .hero::before { height: 285px; background-position: 64% center; }
  .hero-copy { padding-top: 34px; }
  .hero-title { margin-top: 18px; font-size: 34px; letter-spacing: .06em; }
  .hero-kicker { font-size: 10px; }
  .upcoming-grid, .fields-grid, .event-grid, .guide-list, .event-info-grid { grid-template-columns: 1fr; }
  .upcoming-card { min-height: 330px; }
  .photo-cluster { min-height: 330px; }
  .bubble { border-width: 5px; }
  .bubble--1 { top: 0; right: 32px; width: 170px; height: 170px; }
  .bubble--2 { top: 125px; right: -6px; width: 130px; height: 130px; }
  .bubble--3 { bottom: 0; left: 72px; width: 150px; height: 150px; }
  .bubble--4 { bottom: 36px; left: -3px; width: 114px; height: 114px; }
  .flower-dots { top: 42px; left: 0; }
  .field-card p, .event-card p:not(.event-subtitle) { min-height: 0; }
  .event-card img { height: 230px; }
  .memories-heading { display: block; margin-bottom: 34px; }
  .memories-lead { margin-top: 15px; }
  .memory-album {
    width: 100%;
    padding: 8px;
    gap: 8px;
    border-radius: 14px;
    scroll-padding-inline: 8px;
  }
  .memory-album::-webkit-scrollbar { display: none; }
  .memory-page {
    min-width: 100%;
    padding: 13px;
    gap: 5px;
    border-radius: 8px;
  }
  .memory-photo { padding: 2px 2px 6px; box-shadow: 0 3px 8px rgba(75, 53, 31, .16); }
  .memory-photo::before { top: -3px; width: 17px; height: 7px; }
  .guide-copy, .guide-item { padding: 34px 24px; }
  .future-panel { min-height: 620px; }
  .future-panel::after { background: linear-gradient(0deg, rgba(42,31,25,.93) 0%, rgba(42,31,25,.63) 73%, rgba(42,31,25,.2) 100%); }
  .future-copy { position: absolute; right: 0; bottom: 0; left: 0; width: auto; padding: 44px 24px; }
  .participation-fee-card { gap: 32px; padding: 42px 24px; border-radius: 28px; }
  .participation-fee-icon { width: 60px; height: 60px; margin-bottom: 18px; font-size: 28px; }
  .participation-fee-copy p { margin-bottom: 16px; line-height: 2; }
  .faq-layout { gap: 34px; }
  .event-detail-grid { gap: 36px; }
  .event-detail-grid img { height: 280px; }
  .event-detail-title { font-size: 38px; }
  .filter-list { display: grid; grid-template-columns: 1fr 1fr; }
}

.greeting-grid { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 60px; padding: 44px 52px; background: #fdf7ec; border: 1px solid rgba(233,217,191,.72); border-radius: var(--radius); box-shadow: 0 12px 34px rgba(88,62,33,.08); }
.greeting-figure { margin: 0; }
.greeting-figure img { display: block; width: 100%; height: 460px; object-fit: cover; object-position: center 62%; mix-blend-mode: multiply; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%), linear-gradient(180deg, transparent 0, #000 10%, #000 90%, transparent 100%); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%), linear-gradient(180deg, transparent 0, #000 10%, #000 90%, transparent 100%); mask-composite: intersect; }
.greeting-copy p { margin: 0 0 16px; color: var(--muted); font-size: 15px; line-height: 2.05; }
.greeting-copy p:last-child { margin-bottom: 0; }
.greeting-name { margin: 0 0 22px !important; padding-bottom: 18px; border-bottom: 1px solid var(--line); color: var(--brown) !important; font-size: 17px !important; font-weight: 700; letter-spacing: .02em; }
@media (max-width: 900px) {
  .greeting-grid { grid-template-columns: 1fr; gap: 28px; padding: 32px 24px 34px; }
  .greeting-figure img { height: 340px; }
  .greeting-copy p { font-size: 14px; line-height: 2; }
}

.line-panel { padding: 52px 46px; background: var(--cream-2); border: 1px solid var(--line); border-radius: 30px; box-shadow: var(--shadow); text-align: center; }
.line-badge { display: inline-flex; align-items: center; padding: 7px 16px; color: #fff; background: #06c755; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .16em; }
.line-title { margin: 22px 0 18px; color: var(--orange-dark); font-size: clamp(26px, 3vw, 34px); font-weight: 400; line-height: 1.6; letter-spacing: .06em; }
.line-lead { max-width: 30em; margin: 0 auto; color: var(--brown); font-size: 15px; line-height: 2.05; text-wrap: pretty; }
.line-button { margin-top: 32px; }
.line-note { margin: 26px 0 0; color: var(--muted); font-size: 12.5px; line-height: 1.95; }
.line-faq { display: grid; gap: 22px; margin: 44px 0 0; }
.line-faq dt { color: var(--brown); font-weight: 700; }
.line-faq dd { margin: 8px 0 0; color: var(--muted); font-size: 14px; line-height: 1.9; }
@media (max-width: 720px) {
  .line-panel { padding: 40px 24px; border-radius: 24px; }
  .line-button { width: 100%; justify-content: center; }
}

.about-hero-grid--solo { grid-template-columns: 1fr; max-width: 760px; }

.event-info-section { padding-top: 0; padding-bottom: 108px; }
.event-info-section .event-info-grid { margin-top: 0; margin-bottom: 0; }

.event-log-list { display: flex; flex-direction: column; gap: 24px; margin-top: 32px; list-style: none; padding: 0; }
.event-log-item { display: grid; grid-template-columns: 200px 1fr; gap: 24px; padding: 24px; background: var(--cream); border-radius: 24px; }
.event-log-item--no-thumb { grid-template-columns: 1fr; }
.event-log-thumb img { display: block; width: 100%; height: 100%; border-radius: 16px; object-fit: cover; }
.event-log-date { display: inline-block; margin-bottom: 8px; color: var(--orange-dark); font-size: 13px; font-weight: 600; letter-spacing: .02em; }
.event-log-title { margin: 0 0 10px; font-size: 18px; }
.event-log-content p { margin: 0 0 12px; color: var(--muted); }
.event-log-content p:last-child { margin-bottom: 0; }
.event-log-info-grid { margin-top: 16px; background: var(--white); }

.news-list { display: flex; flex-direction: column; gap: 20px; margin-top: 32px; }
.news-item { padding: 22px 24px; background: var(--cream); border-radius: 20px; }
.news-item-badge { display: inline-block; margin-bottom: 8px; padding: 4px 12px; border-radius: 999px; background: var(--orange); color: var(--white); font-size: 12px; font-weight: 600; }
.news-item-date { display: block; margin-bottom: 6px; color: var(--muted); font-size: 13px; }
.news-item-title { margin: 0 0 8px; font-size: 18px; }
.news-item-title a { color: inherit; }
.news-item p { margin: 0; color: var(--muted); }
@media (max-width: 700px) {
  .event-log-item { grid-template-columns: 1fr; }
  .event-log-thumb img { aspect-ratio: 16 / 9; }
}
