/* The supplied moonlit poster carries the event identity; reading stays calm. */
.gf-card,.gf-page { --gf-night:#112b35; --gf-gold:#ecd3a1; --gf-red:#982c23; --gf-paper:#fcf7ed; }
.gf-card { display:block; overflow:hidden; border-radius:18px; background:var(--surface); border:1px solid var(--line); color:var(--ink); text-decoration:none; }
.gf-card-art { position:relative; aspect-ratio:3; overflow:hidden; background:var(--gf-night); }
.gf-card-art img { width:100%; height:100%; object-fit:cover; display:block; }
.gf-card-type { position:absolute; left:12px; bottom:10px; padding:4px 9px; background:var(--gf-night); color:var(--gf-gold); border:1px solid #ecd3a150; border-radius:99px; font-size:11px; }
.gf-card-copy { padding:14px; }
.gf-card-date { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; font-size:13px; color:var(--muted); }
.gf-card-date time { font-weight:600; color:var(--gf-red); }
.gf-card-description { display:none; }
.gf-card h2 { margin:7px 0 8px; font-family:"Songti SC","Noto Serif SC",serif; font-size:20px; line-height:1.35; font-weight:600; }
.gf-card-venue { display:flex; align-items:flex-start; gap:7px; font-size:12px; line-height:1.65; margin:0 0 10px; color:var(--muted); }
.gf-card-venue .icon { flex:none; margin-top:2px; width:16px; height:16px; }
.gf-card-foot { border-top:1px solid var(--line); padding-top:10px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.gf-card-foot strong { font-size:20px; font-weight:600; }
.gf-card-foot small { display:block; font-size:12px; margin-top:2px; color:var(--muted); }
.gf-card-go { display:flex; gap:8px; align-items:center; min-height:44px; font-size:13px; font-weight:600; color:var(--sun); }
.gf-card:focus-visible,.gf-back:focus-visible,.gf-qr:focus-visible,.gf-poster summary:focus-visible { outline:3px solid var(--sun); outline-offset:4px; }
.gf-page { max-width:1120px; margin:0 auto; padding-bottom:100px; }
.gf-back { display:inline-flex; min-height:44px; align-items:center; gap:8px; color:var(--muted); font-size:14px; margin-bottom:12px; }
.gf-hero { display:grid; grid-template-columns:1fr 1fr; overflow:hidden; border-radius:26px; background:var(--gf-night); color:var(--gf-paper); }
.gf-hero-art { overflow:hidden; min-width:0; position:relative; }
.gf-hero-art img { display:block; position:absolute; width:100%; height:100%; object-fit:cover; object-position:70% center; top:0; }
.gf-hero-copy { padding:38px 32px; position:relative; }
.gf-eyebrow { color:var(--gf-gold); font-size:12px; line-height:1.6; }
.gf-hero h1 { font-family:"Songti SC","Noto Serif SC",serif; font-size:38px; font-weight:600; line-height:1.3; margin:18px 0; }
.gf-hero-copy>p { font-size:14px; line-height:1.85; color:#dae1df; margin:0; }
.gf-hero-date { margin-top:24px; padding-top:18px; border-top:1px solid #ecd3a140; display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 16px; }
.gf-hero-date>span,.gf-hero-date strong { font-size:27px; font-family:var(--num); font-weight:400; letter-spacing:-.03em; }
.gf-hero-date small { width:100%; font-size:12px; color:var(--gf-gold); }
.gf-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:44px; margin-top:32px; align-items:start; }
.gf-reading { min-width:0; }
.gf-location { padding:0 0 28px; border-bottom:1px solid var(--line); }
.gf-section-label { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:13px; }
.gf-location h2 { font-size:22px; line-height:1.5; font-weight:600; margin:12px 0 8px; }
.gf-location p { color:var(--muted); font-size:13px; line-height:1.7; margin:0; }
.gf-section { padding:28px 0; border-bottom:1px solid var(--line); }
.gf-section-heading { display:flex; flex-wrap:wrap; gap:8px 16px; justify-content:space-between; align-items:baseline; margin-bottom:22px; }
.gf-section-heading h2 { font-size:22px; font-weight:600; margin:0; }
.gf-section-heading>span { font-size:12px; color:var(--muted); }
.gf-program { list-style:none; margin:0; padding:0; }
.gf-program li { display:grid; grid-template-columns:84px 1fr; gap:18px; padding:0 0 24px; position:relative; }
.gf-program li:last-child { padding-bottom:0; }
.gf-program li>span { padding:7px 0; align-self:start; border-radius:99px; text-align:center; background:var(--gf-red); color:var(--gf-paper); font-size:13px; }
.gf-program p { margin:4px 0 0; line-height:1.8; font-size:15px; }
.gf-setlist { background:var(--gf-paper); color:#263438; border:none; padding:24px; border-radius:20px; margin-top:26px; }
.gf-setlist .gf-section-heading>span { color:#58676a; }
.gf-setlist ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-flow:column; grid-template-rows:repeat(var(--song-rows,5),auto); gap:18px 24px; list-style:none; counter-reset:song; padding:0; margin:0; }
.gf-setlist li { counter-increment:song; display:flex; align-items:baseline; gap:10px; min-width:0; font-family:"Songti SC","Noto Serif SC",serif; font-size:18px; line-height:1.5; }
.gf-setlist li::before { content:counter(song,decimal-leading-zero); flex:none; font-family:var(--num); font-size:12px; color:var(--gf-red); }
.gf-setlist li>span { overflow-wrap:anywhere; text-wrap:balance; }
.gf-poster { margin:24px 0 0; border-bottom:1px solid var(--line); }
.gf-poster summary { min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:14px; cursor:pointer; padding:10px 0; }
.gf-poster summary::marker { content:''; }
.gf-poster>img { width:100%; height:auto; display:block; border-radius:16px; margin:14px 0; }
.gf-ticket { border-radius:22px; background:var(--surface); overflow:hidden; border:1px solid var(--line); position:sticky; top:100px; scroll-margin:100px; }
.gf-ticket-head { background:var(--gf-red); padding:24px; color:var(--gf-paper); border-bottom:1px solid #ecd3a145; }
.gf-ticket-head>span { font-size:13px; color:var(--gf-gold); }
.gf-ticket-head>div { margin:14px 0 10px; }
.gf-ticket-head strong { font-family:var(--num); font-size:46px; font-weight:400; letter-spacing:-.04em; }
.gf-ticket-head small { font-size:13px; }
.gf-ticket-head p { font-size:13px; line-height:1.6; margin:0; }
.gf-ticket-body { padding:24px; text-align:center; }
.gf-ticket-body h2 { font-size:20px; margin:0 0 10px; font-weight:600; }
.gf-ticket-body>p { font-size:13px; line-height:1.75; margin:0; color:var(--muted); }
.gf-qr { width:204px; max-width:100%; aspect-ratio:1; display:block; overflow:hidden; position:relative; margin:20px auto 10px; background:#fff; border-radius:4px; }
.gf-qr img { display:block; position:absolute; width:var(--qr-width); max-width:none; height:auto; left:var(--qr-left); top:var(--qr-top); }
html[data-ui] .gf-qr img { max-width:none; }
.gf-qr-caption { font-size:12px; color:var(--muted); }
.gf-ticket-body .gf-source { margin-top:20px; padding-top:20px; border-top:1px solid var(--line); text-align:left; }
.gf-ticket-body .gf-refund { margin-top:10px; text-align:left; }
.gf-dock { display:none; }
html[data-ui="mobile"] .gf-page { padding:0 0 calc(94px + env(safe-area-inset-bottom)); margin:0 calc(-1 * var(--m-pad)); }
html[data-ui="mobile"] .gf-back { position:absolute; z-index:3; width:44px; height:44px; min-height:44px; margin:12px; padding:0; border-radius:50%; background:#fff; color:#112b35; justify-content:center; font-size:0; }
html[data-ui="mobile"] .gf-back .icon { width:20px; height:20px; }
html[data-ui="mobile"] .gf-hero { display:block; border-radius:0; }
html[data-ui="mobile"] .gf-hero-art { aspect-ratio:3; }
html[data-ui="mobile"] .gf-hero-art img { position:static; }
html[data-ui="mobile"] .gf-hero-copy { padding:22px 22px 26px; }
html[data-ui="mobile"] .gf-hero h1 { font-size:28px; margin:12px 0; }
html[data-ui="mobile"] .gf-hero-copy>p { font-size:14px; }
html[data-ui="mobile"] .gf-hero-date { margin-top:18px; padding-top:16px; }
html[data-ui="mobile"] .gf-layout { display:block; margin:0; padding:26px 22px 0; }
html[data-ui="mobile"] .gf-section-heading h2,html[data-ui="mobile"] .gf-location h2 { font-size:20px; }
html[data-ui="mobile"] .gf-location { padding-bottom:24px; }
html[data-ui="mobile"] .gf-program li { grid-template-columns:68px minmax(0,1fr); gap:14px; }
html[data-ui="mobile"] .gf-program p { font-size:14px; }
html[data-ui="mobile"] .gf-program li>span { font-size:12px; }
html[data-ui="mobile"] .gf-setlist { padding:20px 18px; }
html[data-ui="mobile"] .gf-setlist ol { gap:17px 16px; }
html[data-ui="mobile"] .gf-setlist li { font-size:16px; gap:7px; }
html[data-ui="mobile"] .gf-ticket { position:static; margin-top:28px; scroll-margin:12px; }
html[data-ui="mobile"] .gf-ticket-head { padding:22px; }
html[data-ui="mobile"] .gf-ticket-body { padding:24px 22px; }
html[data-ui="mobile"] .gf-dock { position:fixed; z-index:45; bottom:0; left:0; width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 18px calc(12px + env(safe-area-inset-bottom)); background:var(--surface); border-top:1px solid var(--line); }
html[data-ui="mobile"] .gf-dock>div { display:grid; gap:2px; flex:none; }
html[data-ui="mobile"] .gf-dock strong { font-size:23px; font-weight:600; }
html[data-ui="mobile"] .gf-dock small { font-size:11px; color:var(--muted); }
html[data-ui="mobile"] .gf-dock .button { min-height:46px; font-size:13px; padding:0 17px; }
html[data-ui="mobile"] .gf-card--spotlight { margin-top:10px; }
html[data-ui="mobile"] .gf-card h2 { font-size:20px; }
@media(max-width:340px) {
  html[data-ui="mobile"] .gf-page { margin-left:-14px; margin-right:-14px; }
  html[data-ui="mobile"] .gf-hero-copy,html[data-ui="mobile"] .gf-layout { padding-left:18px; padding-right:18px; }
  html[data-ui="mobile"] .gf-setlist { padding:20px 14px; }
  html[data-ui="mobile"] .gf-setlist ol { column-gap:12px; }
  html[data-ui="mobile"] .gf-setlist li { font-size:15px; gap:6px; }
  html[data-ui="mobile"] .gf-dock { padding-left:14px; padding-right:14px; }
  html[data-ui="mobile"] .gf-dock .button { font-size:12px; padding:0 12px; }
}
html[data-ui="desktop"] .gf-card h2 { font-size:26px; }
html[data-ui="desktop"] .ev-grid[data-n="1"]>.gf-card { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); min-height:260px; }
html[data-ui="desktop"] .ev-grid[data-n="1"] .gf-card-art { aspect-ratio:auto; min-height:260px; }
html[data-ui="desktop"] .ev-grid[data-n="1"] .gf-card-art img { position:absolute; top:0; left:0; object-position:70% center; }
html[data-ui="desktop"] .ev-grid[data-n="1"] .gf-card-copy { padding:24px; display:flex; flex-direction:column; }
html[data-ui="desktop"] .ev-grid[data-n="1"] .gf-card h2 { font-size:28px; margin:10px 0; }
html[data-ui="desktop"] .ev-grid[data-n="1"] .gf-card-description { display:block; font-size:13px; line-height:1.75; color:var(--muted); margin:0 0 12px; }
html[data-ui="desktop"] .ev-grid[data-n="1"] .gf-card-foot { margin-top:auto; }
html[data-ui="desktop"][data-city-theme="night"] .gf-card-date time { color:var(--gf-gold); }
@media(max-width:1000px) {
  html[data-ui="desktop"] .ev-grid[data-n="1"]>.gf-card { grid-template-columns:minmax(0,1fr); }
  html[data-ui="desktop"] .ev-grid[data-n="1"] .gf-card-art { aspect-ratio:3; min-height:0; }
  html[data-ui="desktop"] .ev-grid[data-n="1"] .gf-card-art img { position:static; }
}
