:root {
  color-scheme: light;
  --green: #153e32;
  --ink: #19382f;
  --ivory: #f8f7f2;
  --muted: #52665b;
  --line: #c6d2c9;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  color: var(--ink);
  background: var(--ivory);
  font-synthesis: none;
  -webkit-text-size-adjust: 100%;
}
* { box-sizing: border-box; }
body { margin: 0; line-height: 1.65; }
.shell { width: 100%; max-width: 35rem; margin-inline: auto; padding-inline: max(1rem, env(safe-area-inset-left)) max(1rem, env(safe-area-inset-right)); }
.hero { background: var(--green); color: #fffdf6; padding-block: max(2rem, env(safe-area-inset-top)) 1.75rem; }
h1 { font-size: 2.5rem; line-height: 1.4; letter-spacing: .06em; margin: 0 0 .5rem; }
.venue { font-size: 1.0625rem; margin: 0; overflow-wrap: anywhere; }
.date { font-size: 2rem; font-weight: 650; letter-spacing: .04em; margin: 1.25rem 0; font-variant-numeric: tabular-nums; }
.times { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; margin: 0; }
.times > div { flex: 1 1 8rem; border-top: 1px solid #9fb8aa; padding-top: .75rem; }
dt { font-size: 1rem; color: #e0e9df; }
dd { font-size: 1.75rem; font-weight: 650; margin: .125rem 0 0; line-height: 1.4; font-variant-numeric: tabular-nums; }
main { padding-bottom: max(2.5rem, env(safe-area-inset-bottom)); }
.section-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .25rem 1rem; margin-block: 1.75rem 1rem; }
h2 { font-size: 1.375rem; margin: 0; letter-spacing: .04em; }
.section-heading p { font-size: 1rem; color: var(--muted); margin: 0; }
.group { background: #fffdf8; border: 1px solid var(--line); border-radius: .75rem; margin-bottom: 1.25rem; }
.group-heading { background: #eaf0e8; border-radius: .7rem .7rem 0 0; border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .25rem 1rem; padding: .875rem 1.25rem; }
h3 { font-size: 1.375rem; letter-spacing: .055em; margin: 0; }
.group-heading > span { color: var(--muted); font-size: 1rem; }
.members { list-style: none; padding: 0 1.25rem; margin: 0; }
.members li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, max-content); align-items: center; column-gap: .5rem; min-height: 4.5rem; padding-block: 1rem; border-bottom: 1px solid #d8e0d8; }
.members li:last-child { border-bottom: 0; }
.member-meta { min-width: 0; text-align: right; color: var(--muted); }
.award { font-size: .875rem; line-height: 1.5; overflow-wrap: anywhere; }
.name { text-align: right; font-size: 1.5rem; font-weight: 600; letter-spacing: .045em; overflow-wrap: anywhere; }
.guest { font-size: 1rem; font-weight: 500; color: var(--muted); border: 1px solid var(--line); border-radius: .25rem; padding: .0625rem .4rem; }

.award-part { display: inline-block; max-width: 100%; }
