@font-face {
  font-family: "Event Sans";
  src: url("assets/fonts/event-sans.woff2?v=editorial92") format("woff2");
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
}

@font-face {
  font-family: "Event Serif";
  src: url("assets/fonts/zero-serif.woff2?v=editorial92") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "Event Reading";
  src: url("assets/fonts/event-reading.woff2?v=editorial92") format("woff2");
  font-weight: 400 700;
  font-display: swap;
}

:root {
  color-scheme: light;
  --paper: #fcf8f0;
  --ink: #142638;
  --body: #283b49;
  --muted: #52616b;
  --blue: #174e6b;
  --gold: #b38a43;
  --cta-gold: #efd18b;
  --cta-gold-hover: #e8c16c;
  --cta-border: #d7ac54;
  --rule: #d7c8af;
  --pale-blue: #e2eff3;
  --sans: "Event Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  --serif: "Event Serif", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --reading: "Event Reading", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --edge: clamp(1.25rem, 5vw, 5rem);
  --section-space: clamp(3.5rem, 6vw, 6.5rem);
  --gap: clamp(2rem, 4vw, 4rem);
}
* { box-sizing: border-box; }
html { font-size: 18px; scroll-padding-top: 1.25rem; }
body { margin: 0; background: var(--paper); color: var(--body); font: 400 1rem/1.9 var(--sans); letter-spacing: .025em; line-break: strict; overflow-wrap: anywhere; }
h1,h2,h3,p,figure,dl,dd { margin: 0; }
h1,h2,h3 { color: var(--ink); font-family: var(--serif); font-weight: 600; }
h2 { font-size: clamp(1.8rem, 3vw, 2.7rem); line-height: 1.5; letter-spacing: .025em; }
a { color: inherit; text-underline-offset: .3em; }
img { display: block; max-width: 100%; }
.wrap { width: min(calc(100% - var(--edge) * 2), 80rem); margin-inline: auto; }
.keep-phrase { display: inline-block; white-space: nowrap; }
:where(a,button,summary,[tabindex]):focus-visible { outline: 3px solid #c48c2a; outline-offset: 5px; }
::selection { background: #edd9b5; color: var(--ink); }
.skip-link { position: fixed; z-index: 10; top: .5rem; left: .5rem; padding: .5rem 1rem; background: white; transform: translateY(-150%); clip-path: inset(50%); }
.skip-link:focus { transform: none; clip-path: none; }
.button { display: flex; justify-content: center; align-items: center; width: min(100%, 21rem); min-height: 60px; margin-top: 1.5rem; padding: .8rem 1.6rem; border: 1px solid var(--cta-border); border-radius: 999px; background: var(--cta-gold); color: var(--ink); font-weight: 700; font-size: 1.05rem; line-height: 1.55; text-align: center; text-decoration: none; }
.button:hover { background: var(--cta-gold-hover); }
.site-header { border-bottom: 1px solid #dfcfb4; }
.header-inner { display: flex; align-items: center; gap: 2rem; min-height: 82px; }
.masthead { display: inline-flex; align-items: center; gap: .65rem; margin-right: auto; font: 600 clamp(1rem, 1.4vw, 1.25rem)/1.4 var(--serif); color: var(--ink); text-decoration: none; }
.masthead-star { display: block; width: 1.5rem; aspect-ratio: 1; flex-shrink: 0; mix-blend-mode: multiply; background: url("assets/event-visual-draft.png") 96.02% 6.39% / 3360% auto no-repeat; }
.header-inner nav { display: flex; gap: 1.8rem; }
.header-inner nav a { font-size: .875rem; text-decoration: none; padding-block: .8rem; }
.header-inner nav a:hover { text-decoration: underline; }
.header-inner .nav-action { width: auto; min-height: 44px; margin: 0; padding: .5rem 1.5rem; font-size: .9rem; }
.hero { position: relative; overflow: hidden; padding-block: clamp(3.25rem, 5vw, 5rem) clamp(4rem, 6vw, 6rem); }
.hero-inner { display: grid; grid-template-areas: "title portrait" "facts portrait"; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 1.75rem var(--gap); align-items: start; }
.hero-copy { grid-area: title; container-type: inline-size; min-width: 0; }
.hero-host { font-size: .75rem; color: #6b7376; font-weight: 400; margin-bottom: 1.5rem; }
.hero h1 { font-size: clamp(1.8rem, 12.6cqi, 5rem); line-height: 1.25; letter-spacing: -.045em; white-space: nowrap; }
.hero h1 .kana { font-size: .92em; }
.hero-theme { margin-top: 1rem; color: var(--blue); font: 600 clamp(.8rem, 6.3cqi, 2.4rem)/1.55 var(--serif); letter-spacing: -.025em; white-space: nowrap; }
.hero-question { margin-top: 1.1rem; font: 400 clamp(.9rem, 1.2vw, 1.05rem)/1.9 var(--reading); }
.hero-portrait { grid-area: portrait; align-self: center; min-width: 0; position: relative; padding-top: 1.5rem; mix-blend-mode: multiply; }
.hero-photo { position: relative; overflow: hidden; aspect-ratio: 595 / 398; }
.hero-photo img { position: relative; width: 100%; height: auto; }
.hero-portrait figcaption { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); gap: .6rem; align-items: baseline; padding-top: .8rem; text-align: center; color: var(--ink); font: 600 clamp(1.3rem, 2.2vw, 2rem)/1.5 var(--serif); }
.hero-portrait figcaption small { display: block; margin-top: .25rem; color: var(--muted); font: 400 .75rem/1.65 var(--sans); letter-spacing: 0; }
.cross { color: var(--gold); font-family: var(--serif); font-weight: 400; }
.hero-information { grid-area: facts; min-width: 0; }
.hero-when { display: flex; align-items: baseline; flex-wrap: wrap; gap: .7rem 1.25rem; }
.hero-when > time { display: flex; align-items: baseline; gap: .6rem; white-space: nowrap; color: var(--ink); font-size: .9rem; }
.event-date { font: 600 clamp(2rem, 3.5vw, 3.25rem)/1.15 var(--serif); letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.hero-when > p { padding-left: 1.25rem; border-left: 1px solid var(--gold); color: var(--ink); font-size: .9rem; line-height: 1.7; }
.hero-where { margin-top: 1.15rem; }
.hero-where p:first-child { color: var(--ink); font-weight: 600; }
.hero-where p:last-child { margin-top: .25rem; font-size: .85rem; }
.story-section { position: relative; isolation: isolate; overflow: hidden; padding-block: var(--section-space); border-top: 1px solid #bda77b; color: #fffdf7; background: linear-gradient(105deg, #183b52 0%, #224b63 62%, #2c5e73 100%); }
.story-sky { --planet-size: clamp(12rem, 26vw, 25rem); --planet-right: max(10%, calc((100% - 76rem) / 2)); --planet-top: 52%; --planet-parallax: .3; position: absolute; z-index: -1; inset: 0; overflow: hidden; pointer-events: none; }
.story-sky::before { content: ""; position: absolute; inset: 0; background: url("assets/cosmic-band-v82.webp") center / cover no-repeat; opacity: .18; }
.story-stardust { position: absolute; right: -8%; top: -3%; width: 70%; height: 106%; object-fit: cover; object-position: 80% 35%; opacity: .58; -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 35%, #000 100%); mask-image: linear-gradient(to right, transparent 0%, #000 35%, #000 100%); transform: translateY(var(--star-shift, 0px)); }
.earth-disc { position: absolute; width: var(--planet-size); height: auto; right: var(--planet-right); top: var(--planet-top); opacity: .9; transform: translateY(calc(-50% + var(--world-shift, 0px) * var(--planet-parallax))); }
.sky-orbit { position: absolute; width: calc(var(--planet-size) * 1.8); aspect-ratio: 3.5; right: calc(var(--planet-right) - var(--planet-size) * .4); top: var(--planet-top); border: 1px solid rgb(179 138 67 / 65%); border-bottom-color: rgb(179 138 67 / 25%); border-radius: 50%; transform: translateY(calc(-50% + var(--world-shift, 0px) * var(--planet-parallax))) rotate(-24deg); }
.sky-traveler { display: block; position: absolute; width: clamp(3rem, 5vw, 4.5rem); aspect-ratio: 1; left: var(--flight-x, 3%); top: var(--flight-y, 67%); opacity: var(--flight-opacity, 0); transform: translate(-50%, -50%); }
.sky-diamond { display: block; width: 100%; height: 100%; background: url("assets/playful-accents.webp") no-repeat 100% 50% / 200% 100%; transform: rotate(24deg); }
.story-layout { position: relative; }
.story-layout h2 { max-width: 90%; color: inherit; }
.story-layout h2 span { display: inline; }
.story-copy { max-width: min(42rem, 62%); margin-top: 2.2rem; color: inherit; font: 550 clamp(1rem, 1.3vw, 1.125rem)/2.1 var(--reading); letter-spacing: .02em; }
.story-copy p + p { margin-top: 1.35em; }
.story-copy > p { text-wrap: balance; }
.story-copy .story-lead, .story-copy > p:nth-child(2) { text-wrap: balance; }
.story-copy strong { font-weight: 700; }
.story-copy .story-lead { color: inherit; font-size: 1.04em; }
.story-copy .story-ending { margin-top: 2em; color: inherit; }
.section, .details-section, .reservation, .faq { padding-block: var(--section-space); }
.speakers { border-top: 1px solid #dfcfb4; }
.speakers h2, .program h2, .details-layout h2, .reservation h2, .faq h2 { padding-left: 1.1rem; border-left: 4px solid var(--gold); }
.section-intro > p { max-width: 48em; margin-top: 1.15rem; line-height: 1.95; }
.profiles { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--gap); margin-top: 2.75rem; }
.profile { display: grid; grid-template: "portrait identity" auto "portrait body" 1fr / clamp(7rem, 12vw, 10.5rem) minmax(0,1fr); gap: .8rem 1.5rem; align-content: start; }
.profile-portrait { grid-area: portrait; position: relative; overflow: hidden; aspect-ratio: 4/5; align-self: start; border-radius: .35rem; }
.profile-portrait img { position: absolute; width: 250%; max-width: none; height: auto; top: -66%; }
.portrait-sako img { left: -22%; }
.portrait-yasue img { right: -10%; }
.profile-identity { grid-area: identity; min-width: 0; min-height: 6.5rem; }
.profile h3 { font-size: clamp(1.65rem,2.4vw,2.15rem); line-height: 1.45; }
.profile .role { margin-top: .45rem; color: var(--muted); font-size: .8rem; line-height: 1.8; letter-spacing: 0; }
.profile-body { grid-area: body; min-width: 0; font-size: .95rem; line-height: 1.95; }
.plain-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--blue); font-size: .875rem; text-decoration-thickness: 1px; }
.profile-body .plain-link { margin-top: .65rem; }
.program { background: #fff; border-block: 1px solid #e3d7c5; }
.program-list { --time-column: 24%; position: relative; overflow: hidden; margin-top: 2.5rem; border: 1px solid #d5c7af; border-radius: .3rem; background: var(--paper); }
.program-list > div { display: grid; grid-template-columns: var(--time-column) minmax(0,1fr); }
.program-list > div + div { border-top: 1px solid #dfd0b8; }
.program-list dt, .program-list dd { padding: .9rem 1.75rem; min-width: 0; }
.program-list dt { display: flex; align-items: center; flex-wrap: wrap; background: #f5eddd; color: var(--ink); font-size: 1rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.program-list dd { font-size: 1.125rem; color: var(--ink); line-height: 1.8; }
.program-list small { margin-left: .8rem; font-size: .9rem; color: var(--muted); }
.program-list::after { content: ""; position: absolute; pointer-events: none; left: var(--time-column); top: 0; width: 2px; height: calc(100% * var(--program-progress, 0)); background: var(--gold); }
.program-note { margin-top: 1.15rem; color: var(--muted); font-size: .85rem; line-height: 1.9; }
.details-layout { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: 2.5rem var(--gap); align-items: start; }
.details-layout h2 { grid-column: 1/-1; }
.detail-list { display: grid; }
.detail-list > div { display: grid; grid-template-columns: 5rem minmax(0,1fr); gap: 1.1rem; padding-block: .85rem; border-bottom: 1px solid #e0d6c5; }
.detail-list > div:first-child { padding-top: 0; }
.detail-list > div:last-child { border-bottom: 0; }
.detail-list dt { color: var(--muted); font-size: .85rem; padding-top: .15rem; }
.detail-list dd { font-size: .95rem; }
.detail-list strong { color: var(--ink); font-weight: 600; }
.fee-conditions { margin-top: .6rem; font-size: .8rem; line-height: 1.85; color: var(--muted); }
.mc-profile { min-height: 0; font-size: inherit; }
.venue-map { min-width: 0; }
.venue-map > a { display: block; background: white; border: 1px solid #e4dccf; padding: .8rem; border-radius: .35rem; }
.venue-map img { width: 100%; height: auto; }
.venue-map figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 1rem; padding-top: .45rem; }
.reservation { position: relative; isolation: isolate; overflow: hidden; color: #fffdf7; background: #123a51; }
.reservation-background { position: absolute; z-index: -1; inset: -24px 0; width: 100%; height: calc(100% + 48px); object-fit: cover; object-position: 60% 38%; transform: translateY(var(--cosmos-shift,0px)); }
.reservation-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap: var(--gap); align-items: start; }
.reservation h2 { color: #fffaf0; }
.reservation-state { margin-top: 1.5rem; font-size: .95rem; max-width: 32em; }
#registration-status:not(:empty) { font-weight: 600; margin-bottom: .75rem; }
.reservation .button { background: #fcf4df; color: var(--ink); border-color: #fcf4df; width: min(100%,26rem); margin-top: 1.75rem; }
.reservation .button:hover { background: white; border-color: white; }
.reservation-content { min-width: 0; padding-left: 2rem; border-left: 1px solid #c49c5d; }
.payment-methods { padding: 1.5rem; background: #fff; color: var(--body); border: 1px solid #e3e5e4; border-radius: .4rem; }
.payment-methods dt { font-weight: 600; margin-bottom: 1rem; }
.payment-methods dd { display: grid; gap: .8rem; }
.payment-line { display: flex; align-items: center; flex-wrap: wrap; gap: .25rem .9rem; font-size: .85rem; }
.payment-line + .payment-line { padding-top: .85rem; border-top: 1px solid #e1e3e2; }
.payment-line > span:first-child { width: 8.6em; flex-shrink: 0; white-space: nowrap; }
.payment-marks { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; }
.payment-marks.card-marks { display: grid; grid-template-columns: repeat(3,56px); gap: .3rem; }
.payment-marks img { display: block; width: 56px; height: 36px; object-fit: contain; }
.payment-marks .link-logo { padding: 4px; }
.method-help { font-size: .8rem; line-height: 1.85; color: var(--muted); }
.arrival { margin-top: 1rem; font-size: .85rem; }
.arrival summary { cursor: pointer; min-height: 44px; padding-block: .5rem; }
.arrival > div { padding-top: .5rem; }
.arrival > div p + p { margin-top: .75em; }
.faq { background: var(--paper); border-top: 1px solid #ddcdb2; }
.faq-layout { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1.8fr); gap: var(--gap); align-items: start; }
.faq h2 { font-size: clamp(1.65rem,2.7vw,2.45rem); }
.faq-list { display: grid; gap: .75rem; }
.faq-list details { border: 1px solid #d3c8b7; border-radius: .3rem; background: rgb(255 255 255 / 45%); }
.faq-list summary { cursor: pointer; min-height: 56px; padding: .85rem 1.1rem; color: var(--ink); font-size: .95rem; line-height: 1.8; }
.faq-list summary::marker { color: var(--gold); }
.faq-list details[open] { background: #fffdf8; }
.faq-list p { margin: 0 1.1rem 1.1rem; font-size: .9rem; line-height: 1.95; }
.faq-list a { color: var(--blue); }
.site-footer { color: #f9f3e6; background: #133b53 url("assets/cosmic-band-v82.webp") center 65% / cover; }
.footer-inner { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem 3rem; padding-block: 2rem; }
.footer-organizer { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1.5rem; }
.footer-logo { display: flex; align-items: center; min-height: 44px; }
.footer-logo img { width: 8.75rem; filter: brightness(0) invert(1); }
.footer-inner p { font-size: .75rem; line-height: 1.8; }
.footer-contact { max-width: 26rem; }
.footer-contact > a { font-size: .9rem; }
.footer-contact p:last-child { margin-top: .3rem; color: #d7e0e4; }
@media (prefers-reduced-motion: no-preference) {
  .button { transition: background-color .18s, color .18s, transform .18s; }
  .button:hover { transform: translateY(-2px); }
  .hero-portrait.in-view { animation: enter .7s both; }
  .profile.in-view, .venue-map.in-view { animation: enter .65s both; }
  @keyframes enter { from { opacity: 1; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
}
@media (prefers-reduced-motion: reduce) {
  .sky-traveler { left: 15%; top: 14.3%; opacity: 1; }
  .program-list::after { display: none; }
}
@media (max-width: 62rem) {
  .hero-inner { gap: 1.5rem 2rem; }
  .hero-when > p { border-left: 0; padding-left: 0; }
  .profile { grid-template: "portrait identity" auto "body body" auto / 7rem minmax(0,1fr); gap: 1rem 1.1rem; }
  .profile .role { font-size: .75rem; }
  .payment-line { display: grid; }
  .reservation-content { padding-left: 1.5rem; }
  .faq-layout { grid-template-columns: 1fr; gap: 2rem; }
}
@media (max-width: 47rem) {
  :root { --gap: 2rem; --section-space: 3.75rem; }
  .header-inner { min-height: 68px; gap: .6rem; }
  .masthead { font-size: .95rem; gap: .4rem; }
  .masthead-star { width: 1.25rem; }
  .header-inner nav { display: none; }
  .header-inner .nav-action { padding: .5rem 1rem; font-size: .8rem; }
  .hero { padding-block: 2.5rem 3.5rem; }
  .hero-inner { grid-template-columns: minmax(0,1fr); grid-template-areas: "title" "portrait" "facts"; gap: 1.6rem; }
  .hero-host { font-size: .7rem; margin-bottom: 1.5rem; }
  .hero-question { font-size: .9rem; line-height: 1.85; margin-top: .9rem; }
  .hero h1 { font-size: clamp(1.8rem, 13.2cqi, 5rem); }
  .hero-theme { margin-top: .8rem; }
  .hero-portrait { width: min(100%,31rem); justify-self: center; }
  .hero-portrait figcaption { font-size: clamp(1.3rem,5vw,1.75rem); gap: .5rem; }
  .hero-portrait figcaption small { font-size: .72rem; }
  .hero-when > time { font-size: .9rem; }
  .event-date { font-size: 2.35rem; }
  .hero-when > p { font-size: .85rem; }
  .hero-where { margin-top: .9rem; }
  .hero-where p:first-child { font-size: .95rem; }
  .hero-where p:last-child { font-size: .8rem; }
  .button { margin-inline: auto; }
  .hero .button { margin-top: 1.4rem; }
  .story-sky { --planet-size: clamp(4.5rem, 23vw, 5rem); --planet-right: 12%; --planet-top: 3.6rem; --planet-parallax: .14; }
  .story-stardust { width: 135%; right: 5%; height: 100%; top: 0; opacity: .3; -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 25%, #000 75%, transparent 100%); mask-image: linear-gradient(to right, transparent 0%, #000 25%, #000 75%, transparent 100%); }
  .earth-disc { opacity: .9; filter: brightness(1.08); }
  .sky-traveler { width: 2.5rem; }
  .story-layout h2 { max-width: 100%; padding-top: 1.5rem; font-size: clamp(1.1rem,6.2vw,1.85rem); line-height: 1.6; }
  .story-layout h2 span { display: block; white-space: nowrap; }
  .story-copy { max-width: 100%; margin-top: 2rem; font-size: 1rem; line-height: 2.05; letter-spacing: .02em; }
  .story-copy p + p { margin-top: 1.4em; }
  .story-copy .story-lead { font-size: 1rem; }
  .story-lead-line { display: block; }
  .story-copy .story-ending { margin-top: 1.8em; }
  h2 { font-size: 1.75rem; }
  .speakers h2,.program h2,.details-layout h2,.reservation h2,.faq h2 { padding-left: .75rem; border-left-width: 3px; }
  .section-intro > p { font-size: .95rem; }
  .profiles { grid-template-columns: minmax(0,1fr); gap: 2.75rem; margin-top: 2rem; }
  .profile { grid-template: "portrait identity" auto "body body" auto / clamp(6.25rem,27vw,8rem) minmax(0,1fr); gap: 1.2rem 1rem; }
  .profile-identity { min-height: 0; }
  .profile h3 { font-size: 1.55rem; }
  .profile .role { font-size: .78rem; }
  .profile-body { font-size: .95rem; }
  .profile-body > p { text-align: start; }
  .profile-body .plain-link { display: flex; width: fit-content; margin: .8rem auto 0; justify-content: center; }
  .program-list { --time-column: 7.2rem; margin-top: 1.8rem; }
  .program-list dt,.program-list dd { padding: .85rem .75rem; }
  .program-list dt { font-size: .85rem; }
  .program-list dd { font-size: 1rem; }
  .program-list small { display: block; margin: .2rem 0 0; font-size: .8rem; }
  .program-note { font-size: .8rem; }
  .details-layout { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  .detail-list > div { grid-template-columns: 3.5rem minmax(0,1fr); gap: .7rem; }
  .detail-list dt { font-size: .8rem; }
  .detail-list dd { font-size: .9rem; }
  .venue-map figcaption { justify-content: center; }
  .fee-conditions { font-size: .8rem; }
  .reservation-layout { grid-template-columns: minmax(0,1fr); gap: 2.25rem; }
  .reservation-state { margin-top: 1.3rem; font-size: .9rem; }
  .reservation .button { margin-top: 1.5rem; }
  .reservation-content { border-left: 0; padding-left: 0; }
  .payment-methods { padding: 1.25rem; }
  .payment-line { display: flex; }
  .payment-line > span:first-child { width: 100%; }
  .arrival { margin-top: .9rem; }
  .faq h2 { font-size: 1.75rem; }
  .faq-list summary { font-size: .9rem; padding: .85rem .9rem; }
  .faq-list p { font-size: .875rem; margin-inline: .9rem; }
  .footer-inner { display: grid; grid-template-columns: minmax(0,1fr); gap: 1rem; padding-block: 1.75rem; }
  .footer-organizer { gap: .5rem 1rem; }
  .footer-logo img { width: 7.5rem; }
  .footer-inner p { font-size: .7rem; }
}
@media (max-width: 22rem) {
  .program-list { --time-column: 6.8rem; }
  .program-list dt,.program-list dd { padding-inline: .5rem; }
  .program-list dd { font-size: .95rem; }
  .hero-portrait figcaption small { font-size: .65rem; }
}
@media print {
  .story-sky,.reservation-background,nav,.button,.skip-link { display: none; }
  .hero,.story-section,.program,.reservation,.faq,.site-footer { background: white; color: black; }
  .reservation h2,.footer-contact p:last-child { color: black; }
  .hero,.section,.story-section,.details-section,.reservation,.faq { padding-block: 1.5rem; }
  .profile,.program-list > div { break-inside: avoid; }
}

.hero-decoration { position: absolute; inset: 0; pointer-events: none; }
.hero-star { position: absolute; width: 1.35rem; aspect-ratio: 1; background: url("assets/event-visual-draft.png") 96.02% 6.39% / 3360% auto no-repeat; }
.hero-star-one { left: -1.8rem; top: 3.4rem; }
.hero-star-two { right: -1.4rem; top: .75rem; width: .9rem; }
.hero-star-three { right: -1.75rem; top: 67%; width: 1rem; }
@media (max-width: 47rem) {
  .hero-portrait { padding-top: 1.5rem; }
  .hero-star-one { left: -1.1rem; top: 4.9rem; width: 1rem; }
  .hero-star-two { right: -1.1rem; top: .4rem; width: .75rem; }
  .hero-star-three { right: -1rem; top: 60%; width: .8rem; }
}

@media (max-width: 22rem) {
  .masthead { font-size: .8rem; gap: .3rem; }
  .masthead-star { width: 1rem; }
  .header-inner .nav-action { font-size: .72rem; padding-inline: .75rem; }
}

.hero-star-four { top: -.75rem; right: 2rem; width: 1.6rem; }
.hero-star-five { top: .25rem; right: 4.7rem; width: .65rem; }
@media (max-width: 47rem) {
  .hero-star-four { top: -.5rem; right: 1.5rem; width: 1.2rem; }
  .hero-star-five { top: .5rem; right: 3.5rem; width: .55rem; }
}

.section-intro > p, .fee-conditions, .faq-list p, .arrival p, .reservation-state > p { text-wrap: balance; }
.profile h3 { white-space: nowrap; }
@media (prefers-reduced-motion: no-preference) {
  .hero-star:nth-child(even) { animation: starlight 4s ease-in-out infinite; }
  @keyframes starlight { 0%,100% { opacity: .65; } 50% { opacity: 1; } }
}

.story-sentence { display: block; text-wrap: balance; }

p, dd, summary { word-break: keep-all; overflow-wrap: anywhere; }


/* On phones, prose flows within each paragraph instead of balanced sentence rows. */
@media (max-width: 47rem) {
  .story-copy > p,
  .story-copy .story-lead,
  .story-copy > p:nth-child(2),
  .story-copy .story-sentence { text-wrap: pretty; word-break: normal; }
  .story-copy .story-lead-line,
  .story-copy .story-sentence { display: inline; }
  .story-copy .keep-phrase { display: inline; white-space: normal; }
  .story-copy .keep-term { display: inline-block; white-space: nowrap; }
}

/* Each biography is continuous prose on desktop and mobile. */
.profile-body > p { text-wrap: pretty; word-break: normal; }
.profile-body .keep-phrase { display: inline; white-space: normal; }
.profile-body .keep-term { display: inline-block; white-space: nowrap; }

@media (max-width: 47rem) {
  .story-copy .story-answer > .story-sentence { display: block; }
}
