
:root{
  --rose:#b87b86;
  --dusty-pink:#d1a0aa;
  --apricot:#d4a06b;
  --mustard:#c3a35f;
  --sage:#92a28a;
  --dusty-blue:#8098ad;
  --mauve:#9d8cae;
  --ink:#223043;
  --ink-soft:#506073;
  --paper:#fcf8f3;
  --white:#ffffff;
  --line:rgba(34,48,67,.10);
  --shadow:0 24px 60px rgba(92,86,102,.12),0 14px 34px rgba(117,95,76,.10);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 8% 12%, rgba(184,123,134,.10), transparent 20%),
    radial-gradient(circle at 86% 10%, rgba(195,163,95,.12), transparent 18%),
    radial-gradient(circle at 14% 88%, rgba(128,152,173,.10), transparent 20%),
    linear-gradient(180deg,#f8f2ec 0%, #fbf8f5 42%, #f5f1ec 100%);
  overflow-x:hidden;
}

a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font:inherit}

.container{
  width:min(1180px, calc(100% - 34px));
  margin:0 auto;
}

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  backdrop-filter:blur(12px);
  background:linear-gradient(90deg, rgba(184,123,134,.95), rgba(157,140,174,.95) 35%, rgba(128,152,173,.94) 68%, rgba(146,162,138,.94) 100%);
  border-bottom:1px solid rgba(255,255,255,.28);
  box-shadow:0 10px 28px rgba(34,48,67,.08);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:82px;
}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
}
.brand-mark{
  width:52px;height:52px;border-radius:50%;
  display:grid;place-items:center;
  background:radial-gradient(circle at 35% 30%, #fff, #eadfca 55%, #d4a06b 100%);
  color:#3b4450;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:30px;
  font-weight:700;
  box-shadow:0 10px 20px rgba(34,48,67,.12);
}
.brand-text span{
  display:block;
  color:#fff;
  font-size:20px;
  font-weight:800;
  line-height:1;
}
.brand-text small{
  display:block;
  margin-top:5px;
  color:rgba(255,255,255,.92);
  font-size:11px;
  letter-spacing:.16em;
}
.nav{
  display:flex;
  gap:10px;
  align-items:center;
}
.nav a{
  padding:10px 14px;
  border-radius:999px;
  color:#fff;
  font-weight:800;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
}
.nav a:hover{
  background:rgba(255,255,255,.22);
}
.nav-cta{
  background:rgba(255,255,255,.22)!important;
}
.menu-button{
  display:none;
  border:none;
  background:#fff;
  color:var(--ink);
  font-weight:800;
  padding:10px 14px;
  border-radius:999px;
}

.hero{
  position:relative;
  min-height:860px;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(92deg, rgba(248,242,236,.92) 0%, rgba(248,242,236,.74) 36%, rgba(248,242,236,.18) 100%),
    url('assets/images/venue-sunset-bg.jpg') center/cover no-repeat;
  z-index:0;
}
.hero-overlay{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(circle at 16% 18%, rgba(255,255,255,.34), transparent 26%),
    linear-gradient(180deg, rgba(184,123,134,.08) 0%, rgba(212,160,107,.04) 30%, transparent 100%);
}
.hero-grid{
  position:relative; z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr) 390px;
  gap:34px;
  align-items:center;
  padding:84px 0 70px;
}
.eyebrow{
  display:inline-flex;
  margin:0 0 16px;
  padding:10px 16px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  color:#6e5d56;
  font-weight:800;
  letter-spacing:.12em;
  border:1px solid rgba(110,93,86,.10);
}
.hero-chip{
  display:inline-flex;
  margin-bottom:20px;
  padding:13px 20px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--dusty-pink), var(--apricot), var(--mustard), var(--sage), var(--dusty-blue), var(--mauve));
  color:#fff;
  font-weight:900;
  box-shadow:var(--shadow);
}
.hero-title{
  margin:0;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.hero-title-main{
  display:block;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Times New Roman",Georgia,serif;
  font-size:clamp(64px,9vw,124px);
  line-height:.90;
  letter-spacing:-.04em;
  font-weight:700;
  color:#fff7ef;
  text-shadow:
    0 1px 0 rgba(255,255,255,.6),
    0 8px 18px rgba(82,63,55,.12),
    0 18px 38px rgba(82,63,55,.12);
}
.hero-title-sub{
  display:inline-flex;
  width:fit-content;
  align-items:center;
  justify-content:center;
  padding:9px 24px 12px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(184,123,134,.90), rgba(212,160,107,.90), rgba(157,140,174,.90));
  color:#fff;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:clamp(36px,5vw,62px);
  font-weight:700;
  box-shadow:var(--shadow);
}
.hero-catch{
  margin:30px 0 16px;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:clamp(28px,4.4vw,48px);
  line-height:1.20;
  color:#fffaf4;
  text-shadow:0 4px 18px rgba(82,63,55,.18);
  font-weight:700;
}
.hero-lead{
  margin:0;
  max-width:760px;
  padding:18px 20px;
  border-radius:22px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(255,255,255,.50);
  box-shadow:var(--shadow);
  color:var(--ink);
  font-size:18px;
  line-height:1.9;
  font-weight:700;
}
.hero-badges{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:22px;
}
.hero-badges span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 16px;
  border-radius:999px;
  background:rgba(255,255,255,.64);
  color:#5c6876;
  font-weight:800;
  border:1px solid rgba(92,104,118,.14);
  box-shadow:0 10px 24px rgba(92,86,102,.08);
}
.hero-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:28px;
}
.button{
  min-height:56px;
  padding:14px 24px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  box-shadow:var(--shadow);
}
.button-primary{
  background:linear-gradient(90deg, var(--rose), var(--apricot), var(--mauve));
  color:#fff;
}
.button-secondary{
  background:rgba(255,255,255,.68);
  color:#5a6573;
  border:1px solid rgba(90,101,115,.10);
}

.festival-ticket{
  position:relative;
  background:linear-gradient(180deg, rgba(255,250,242,.95) 0%, rgba(249,240,227,.96) 58%, rgba(245,233,236,.96) 100%);
  border:1px solid rgba(255,255,255,.70);
  border-radius:34px;
  box-shadow:0 28px 60px rgba(92,86,102,.12);
  padding:18px;
}
.festival-ticket::before,
.festival-ticket::after{
  content:"";
  position:absolute;
  top:50%;
  width:28px;height:28px;
  border-radius:50%;
  background:rgba(128,152,173,.65);
  transform:translateY(-50%);
}
.festival-ticket::before{left:-14px}
.festival-ticket::after{right:-14px}
.ticket-top{
  padding:18px 14px 16px;
  border-radius:20px;
  background:linear-gradient(90deg, var(--dusty-blue), var(--mauve), var(--rose));
  color:#fff;
  text-align:center;
}
.ticket-top small{
  display:block;
  font-size:12px;
  letter-spacing:.18em;
  opacity:.9;
  margin-bottom:8px;
}
.ticket-top strong{
  font-size:20px;
  letter-spacing:.02em;
}
.ticket-date{
  padding:24px 8px;
  text-align:center;
  border-bottom:2px dashed rgba(92,104,118,.20);
}
.ticket-date span{
  display:block;
  color:#7f6a63;
  font-weight:900;
  letter-spacing:.18em;
}
.ticket-date strong{
  display:block;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:104px;
  line-height:.88;
  color:#42556c;
  font-weight:700;
}
.ticket-list{
  margin:0;
  padding:18px 10px 4px;
}
.ticket-list div{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:11px 0;
  border-bottom:1px solid rgba(92,104,118,.14);
}
.ticket-list dt{
  color:#7d8795;
  font-weight:800;
}
.ticket-list dd{
  margin:0;
  color:#42556c;
  text-align:right;
  font-weight:900;
}
.ticket-note{
  margin:12px 8px 4px;
  padding:14px 16px;
  border-radius:16px;
  background:linear-gradient(90deg, rgba(209,160,170,.92), rgba(212,160,107,.88));
  color:#fff;
  text-align:center;
  font-weight:900;
}

.marquee{
  overflow:hidden;
  background:linear-gradient(90deg, rgba(184,123,134,.92), rgba(212,160,107,.92), rgba(195,163,95,.92), rgba(146,162,138,.92), rgba(128,152,173,.92), rgba(157,140,174,.92));
  color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), inset 0 -1px 0 rgba(255,255,255,.22);
}
.marquee-inner{
  display:flex;
  gap:28px;
  width:max-content;
  padding:14px 0;
  font-weight:900;
  letter-spacing:.08em;
  animation:marquee 28s linear infinite;
}
.marquee-inner span{white-space:nowrap;padding-left:28px}
@keyframes marquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

.section{
  padding:86px 0;
}
.section-soft{
  background:linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.44));
}
.section-title{
  max-width:860px;
  margin:0 auto 34px;
  text-align:center;
}
.section-title.left{
  margin-left:0;
  text-align:left;
}
.label{
  display:inline-flex;
  margin-bottom:12px;
  padding:8px 16px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--dusty-pink), var(--mustard), var(--dusty-blue));
  color:#fff;
  font-weight:900;
  letter-spacing:.14em;
}
.section-title h2,
.poster-copy h2{
  margin:0;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Times New Roman",Georgia,serif;
  font-size:clamp(34px,5vw,58px);
  line-height:1.15;
  color:#38475b;
  font-weight:700;
}
.section-title p,
.poster-copy p{
  color:#5b6775;
  font-size:17px;
  line-height:1.85;
  font-weight:700;
}

.wow-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.wow-card,
.schedule-card,
.flow-card,
.gallery-card,
.news-item,
.note-box{
  border-radius:28px;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(255,255,255,.72);
  box-shadow:var(--shadow);
}
.wow-card{
  padding:24px 22px;
  min-height:270px;
}
.wow-icon{
  display:block;
  font-size:42px;
  margin-bottom:14px;
}
.wow-card h3,
.schedule-card h3,
.flow-card h3,
.gallery-card h3,
.news-item h3{
  margin:0 0 10px;
  color:#39495e;
  font-size:24px;
}
.wow-card p,
.schedule-card p,
.flow-card p,
.gallery-card p,
.news-item p{
  margin:0;
  color:#657386;
  font-weight:700;
  line-height:1.75;
}
.tone-rose{background:linear-gradient(180deg, rgba(209,160,170,.20), rgba(255,255,255,.86))}
.tone-gold{background:linear-gradient(180deg, rgba(195,163,95,.18), rgba(255,255,255,.86))}
.tone-sage{background:linear-gradient(180deg, rgba(146,162,138,.18), rgba(255,255,255,.86))}
.tone-blue{background:linear-gradient(180deg, rgba(128,152,173,.18), rgba(255,255,255,.86))}

.schedule-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:16px;
}
.schedule-card{
  padding:22px 18px;
}
.schedule-card .icon{
  display:block;
  font-size:34px;
  margin-bottom:10px;
}
.note-box{
  margin-top:20px;
  padding:18px 20px;
  color:#5c6876;
  font-weight:700;
}

.flow-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.flow-card{
  padding:24px 20px;
}
.flow-card .num{
  display:inline-grid;
  place-items:center;
  width:46px;height:46px;
  border-radius:50%;
  margin-bottom:12px;
  background:linear-gradient(90deg, var(--dusty-blue), var(--mauve));
  color:#fff;
  font-weight:900;
}
.flow-card strong{
  display:block;
  margin-bottom:4px;
  color:#7b6b62;
  font-size:22px;
  font-weight:900;
}
.flow-card.emphasis{
  background:linear-gradient(135deg, rgba(184,123,134,.86), rgba(212,160,107,.84), rgba(146,162,138,.82));
}
.flow-card.emphasis h3,
.flow-card.emphasis p,
.flow-card.emphasis strong{
  color:#fff;
}
.flow-card.emphasis .num{
  background:#fff;
  color:#6a7889;
}

.poster-tone{
  background:linear-gradient(135deg, rgba(209,160,170,.26), rgba(212,160,107,.26), rgba(157,140,174,.18));
}
.bbq-tone{
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.26));
}
.poster-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,420px);
  gap:34px;
  align-items:center;
}
.poster-grid.reverse{
  grid-template-columns:minmax(320px,420px) minmax(0,1fr);
}
.poster-frame{
  padding:10px;
  border-radius:28px;
  background:rgba(255,255,255,.84);
  border:1px solid rgba(255,255,255,.76);
  box-shadow:var(--shadow);
}
.poster-button,
.gallery-button{
  width:100%;
  padding:0;
  border:none;
  background:none;
  cursor:pointer;
  text-align:left;
}
.poster-button img,
.gallery-button img{
  width:100%;
  border-radius:22px;
}
.poster-open{
  display:block;
  margin-top:10px;
  padding:10px 12px;
  border-radius:14px;
  background:linear-gradient(90deg, rgba(184,123,134,.18), rgba(128,152,173,.16));
  color:#5f6b7b;
  font-weight:800;
  text-align:center;
}
.dark-copy h2{color:#38475b}
.bbq-time{
  display:inline-flex;
  margin-top:12px;
  padding:15px 20px;
  border-radius:18px;
  background:linear-gradient(90deg, var(--rose), var(--apricot), var(--mustard));
  color:#fff;
  font-weight:900;
  font-size:26px;
  box-shadow:var(--shadow);
}

.gallery-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
  max-width:900px;
  margin:0 auto;
}
.gallery-card{
  overflow:hidden;
}
.gallery-card div{
  padding:18px 20px 20px;
}
.gallery-button{
  display:block;
}
.gallery-button:focus-visible,
.poster-button:focus-visible,
.button:focus-visible,
.nav a:focus-visible{
  outline:3px solid rgba(146,162,138,.65);
  outline-offset:3px;
}

.news-list{
  display:grid;
  gap:14px;
  max-width:900px;
  margin:0 auto;
}
.news-item{
  display:grid;
  grid-template-columns:140px 1fr;
  gap:18px;
  padding:20px;
}
.news-date{
  display:inline-flex;
  width:fit-content;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:999px;
  background:linear-gradient(90deg, var(--dusty-pink), var(--dusty-blue));
  color:#fff;
  font-weight:900;
  height:fit-content;
}

.checklist-section{
  background:linear-gradient(135deg, rgba(157,140,174,.94), rgba(128,152,173,.94), rgba(146,162,138,.94));
}
.checklist-section .section-title h2,
.checklist-section .section-title p{
  color:#fff;
}
.todo-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.todo-grid div{
  padding:18px;
  border-radius:20px;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-weight:900;
  border:1px solid rgba(255,255,255,.24);
}

.site-footer{
  padding:28px 0;
  background:linear-gradient(90deg, rgba(184,123,134,.96), rgba(128,152,173,.96), rgba(157,140,174,.96));
  color:#fff;
}
.footer-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.footer-inner strong{
  font-size:20px;
}
.footer-inner p{
  margin:3px 0 0;
  opacity:.92;
}

/* lightbox */
.lightbox{
  position:fixed;
  inset:0;
  z-index:100;
  display:none;
}
.lightbox.is-open{
  display:block;
}
.lightbox-backdrop{
  position:absolute; inset:0;
  background:rgba(24,30,42,.68);
  backdrop-filter:blur(4px);
}
.lightbox-dialog{
  position:relative;
  width:min(92vw, 980px);
  max-height:90vh;
  overflow:auto;
  margin:4vh auto 0;
  background:rgba(255,255,255,.98);
  border-radius:24px;
  padding:18px 18px 20px;
  box-shadow:0 24px 60px rgba(0,0,0,.28);
}
.lightbox-dialog h3{
  margin:0 48px 14px 4px;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  color:#39495e;
  font-size:28px;
}
.lightbox-dialog img{
  width:100%;
  height:auto;
  border-radius:18px;
}
.lightbox-close{
  position:absolute;
  top:12px;
  right:12px;
  width:40px;height:40px;
  border:none;
  border-radius:50%;
  background:#e8ecef;
  color:#39495e;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}

@media (max-width:1080px){
  .hero-grid,
  .poster-grid,
  .poster-grid.reverse{
    grid-template-columns:1fr;
  }
  .festival-ticket{
    max-width:420px;
    margin:0 auto;
  }
  .wow-grid,
  .flow-grid,
  .schedule-grid,
  .todo-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:820px){
  .header-inner{
    min-height:72px;
  }
  .nav{
    display:none;
    position:absolute;
    top:72px;
    left:12px;
    right:12px;
    flex-direction:column;
    padding:12px;
    border-radius:18px;
    background:rgba(91,104,119,.98);
    box-shadow:var(--shadow);
  }
  .nav.is-open{
    display:flex;
  }
  .menu-button{
    display:inline-flex;
  }
  .hero{
    min-height:auto;
  }
  .hero-grid{
    padding:58px 0 56px;
    gap:26px;
  }
  .hero-title-main{
    font-size:clamp(52px, 14vw, 82px);
  }
  .hero-title-sub{
    font-size:clamp(34px, 10vw, 52px);
  }
  .hero-catch{
    font-size:clamp(24px, 8vw, 36px);
  }
  .hero-lead{
    font-size:15px;
    padding:15px 16px;
  }
  .hero-badges span{
    width:calc(50% - 6px);
    text-align:center;
  }
  .hero-actions .button{
    width:100%;
  }
  .section{
    padding:64px 0;
  }
  .section-title{
    text-align:left;
  }
  .wow-grid,
  .flow-grid,
  .schedule-grid,
  .gallery-grid,
  .todo-grid{
    grid-template-columns:1fr;
  }
  .news-item{
    grid-template-columns:1fr;
  }
  .lightbox-dialog{
    width:min(94vw, 980px);
    margin-top:3vh;
  }
}

@media (max-width:430px){
  .container{
    width:min(100% - 24px, 1180px);
  }
  .brand-text span{
    font-size:17px;
  }
  .hero-badges span{
    width:100%;
  }
  .ticket-date strong{
    font-size:78px;
  }
  .festival-ticket::before,
  .festival-ticket::after{
    display:none;
  }
}

/* === Marimarble Taiso section === */
.taiso-section{
  background:
    radial-gradient(circle at 12% 12%, rgba(209,160,170,.20), transparent 22%),
    radial-gradient(circle at 88% 18%, rgba(195,163,95,.20), transparent 24%),
    linear-gradient(135deg, rgba(252,248,243,.96), rgba(245,241,236,.98));
}
.taiso-hero-card{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(320px,.72fr);
  gap:28px;
  align-items:stretch;
  padding:28px;
  border-radius:34px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(255,255,255,.78);
  box-shadow:var(--shadow);
}
.taiso-copy h2{
  margin:0 0 14px;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Times New Roman",Georgia,serif;
  font-size:clamp(38px,5.6vw,70px);
  line-height:1.08;
  color:#38475b;
}
.taiso-copy p{
  color:#5b6775;
  font-weight:750;
  line-height:1.85;
}
.audio-card{
  display:grid;
  grid-template-columns:72px 1fr;
  gap:16px;
  align-items:start;
  margin:24px 0 20px;
  padding:18px;
  border-radius:24px;
  background:linear-gradient(135deg, rgba(209,160,170,.22), rgba(212,160,107,.18), rgba(128,152,173,.15));
  border:1px solid rgba(255,255,255,.70);
}
.audio-icon{
  width:72px;
  height:72px;
  display:grid;
  place-items:center;
  border-radius:22px;
  background:linear-gradient(135deg, var(--rose), var(--apricot), var(--dusty-blue));
  color:#fff;
  font-family:Georgia,serif;
  font-size:42px;
  box-shadow:var(--shadow);
}
.audio-main strong{
  display:block;
  color:#38475b;
  font-size:22px;
  margin-bottom:4px;
}
.audio-main p{
  margin:0 0 10px;
  font-size:14px;
}
.audio-main audio{
  width:100%;
}
.taiso-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.lyrics-preview-card{
  overflow:hidden;
  border-radius:28px;
  background:linear-gradient(180deg, #fffaf4, #f4ece8);
  border:1px solid rgba(255,255,255,.78);
  box-shadow:var(--shadow);
}
.lyrics-preview-header{
  padding:22px;
  background:linear-gradient(90deg, var(--dusty-pink), var(--apricot), var(--mustard), var(--sage), var(--dusty-blue), var(--mauve));
  color:#fff;
}
.lyrics-preview-header span{
  display:block;
  font-weight:900;
  letter-spacing:.14em;
  font-size:12px;
  opacity:.92;
}
.lyrics-preview-header strong{
  display:block;
  margin-top:6px;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:30px;
}
.lyrics-preview-body{
  padding:24px;
}
.lyrics-preview-body p{
  margin:0 0 12px;
  color:#52627b;
  font-weight:850;
}
.lyrics-preview-body .lyrics-big{
  margin-top:22px;
  padding:18px;
  border-radius:18px;
  text-align:center;
  color:#fff;
  background:linear-gradient(90deg, var(--rose), var(--apricot), var(--dusty-blue));
  font-size:28px;
  font-weight:950;
}

/* lyrics modal */
.lyrics-modal{
  position:fixed;
  inset:0;
  z-index:110;
  display:none;
}
.lyrics-modal.is-open{
  display:block;
}
.lyrics-backdrop{
  position:absolute;
  inset:0;
  background:rgba(28,34,45,.68);
  backdrop-filter:blur(5px);
}
.lyrics-dialog{
  position:relative;
  width:min(94vw, 920px);
  max-height:90vh;
  overflow:auto;
  margin:4vh auto 0;
  padding:24px;
  border-radius:28px;
  background:#fffaf4;
  box-shadow:0 28px 72px rgba(0,0,0,.28);
}
.lyrics-close{
  position:absolute;
  top:14px;
  right:14px;
  width:42px;
  height:42px;
  border:none;
  border-radius:50%;
  background:#e8ecef;
  color:#39495e;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
.lyrics-dialog-head h2{
  margin:0;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  color:#39495e;
  font-size:clamp(32px,5vw,54px);
}
.lyrics-dialog-head p:not(.label){
  color:#617083;
  font-weight:750;
}
.lyrics-text{
  white-space:pre-wrap;
  margin:20px 0 0;
  padding:24px;
  border-radius:22px;
  background:linear-gradient(180deg, rgba(255,255,255,.86), rgba(245,241,236,.86));
  color:#39495e;
  font-family:"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  font-size:17px;
  line-height:2.05;
  font-weight:750;
  border:1px solid rgba(34,48,67,.08);
}

@media (max-width:820px){
  .taiso-hero-card{
    grid-template-columns:1fr;
    padding:20px;
  }
  .audio-card{
    grid-template-columns:1fr;
  }
  .audio-icon{
    width:58px;
    height:58px;
    font-size:34px;
  }
  .taiso-actions .button{
    width:100%;
  }
  .lyrics-dialog{
    margin-top:2.5vh;
    padding:18px;
  }
  .lyrics-text{
    padding:18px;
    font-size:15px;
    line-height:1.95;
  }
}


/* === Hawaiian Aloha Resort theme override === */
:root{
  --hawaii-sunset:#d9896a;
  --hawaii-coral:#c97b7a;
  --hawaii-sand:#f4dfbd;
  --hawaii-palm:#7f9f83;
  --hawaii-ocean:#6f9fb6;
  --hawaii-deep:#39556b;
  --hawaii-plumeria:#f7eee2;
  --hawaii-ink:#2f4151;
}

body{
  background:
    radial-gradient(circle at 8% 10%, rgba(216,137,106,.18), transparent 22%),
    radial-gradient(circle at 88% 12%, rgba(127,159,131,.16), transparent 24%),
    radial-gradient(circle at 12% 86%, rgba(111,159,182,.14), transparent 22%),
    linear-gradient(180deg,#fff7ec 0%, #f8efe5 44%, #eef5f4 100%) !important;
}

body::after{
  content:"BRIAMBOREE 2026   BRIAMBOREE 2026   BRIAMBOREE 2026";
  position:fixed;
  left:-12vw;
  right:-12vw;
  top:18%;
  z-index:0;
  pointer-events:none;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:54px;
  letter-spacing:.18em;
  color:rgba(57,85,107,.085);
  transform:rotate(-10deg);
  white-space:nowrap;
}

.site-header{
  background:
    linear-gradient(90deg, rgba(201,123,122,.96), rgba(216,137,106,.95) 34%, rgba(127,159,131,.95) 68%, rgba(111,159,182,.95) 100%) !important;
}

.brand-mark{
  background:radial-gradient(circle at 35% 30%, #fffdf4, #f4dfbd 52%, #d9896a 100%) !important;
  color:var(--hawaii-deep) !important;
}

.hero::before{
  background:
    linear-gradient(92deg, rgba(255,244,230,.88) 0%, rgba(255,236,211,.64) 36%, rgba(255,236,211,.12) 100%),
    url('assets/images/venue-sunset-bg.jpg') center/cover no-repeat !important;
  filter:saturate(1.10) brightness(1.04);
}

.hero-overlay{
  background:
    radial-gradient(circle at 18% 18%, rgba(255,247,236,.42), transparent 26%),
    radial-gradient(circle at 80% 12%, rgba(244,223,189,.26), transparent 20%),
    linear-gradient(180deg, rgba(216,137,106,.10) 0%, rgba(127,159,131,.08) 44%, transparent 100%) !important;
}

.hero-chip,
.label,
.ticket-top,
.hero-title-sub,
.button-primary,
.bbq-time,
.lyrics-preview-header,
.lyrics-preview-body .lyrics-big,
.audio-icon{
  background:linear-gradient(90deg, var(--hawaii-coral), var(--hawaii-sunset), var(--hawaii-sand), var(--hawaii-palm), var(--hawaii-ocean)) !important;
}

.hero-title-main{
  color:#fff7ec !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.7),
    0 9px 20px rgba(83,64,52,.14),
    0 22px 46px rgba(83,64,52,.14) !important;
}

.hero-catch{
  color:#fff8ee !important;
  text-shadow:0 4px 18px rgba(83,64,52,.18) !important;
}

.hero-lead,
.festival-ticket,
.wow-card,
.schedule-card,
.flow-card,
.gallery-card,
.news-item,
.note-box,
.taiso-hero-card,
.lyrics-preview-card{
  background:rgba(255,250,244,.78) !important;
  border:1px solid rgba(255,255,255,.78) !important;
}

.hero-badges span{
  background:rgba(255,250,244,.72) !important;
  color:var(--hawaii-deep) !important;
}

.button-secondary,
.poster-open{
  background:rgba(255,250,244,.78) !important;
  color:var(--hawaii-deep) !important;
}

.marquee{
  background:linear-gradient(90deg, var(--hawaii-coral), var(--hawaii-sunset), var(--hawaii-sand), var(--hawaii-palm), var(--hawaii-ocean), var(--hawaii-coral)) !important;
}

.marquee-inner span::before{
  content:"🌺 ";
}

.section-title h2,
.poster-copy h2,
.taiso-copy h2,
.lyrics-dialog-head h2{
  color:var(--hawaii-deep) !important;
}

.poster-tone{
  background:
    radial-gradient(circle at 12% 12%, rgba(244,223,189,.22), transparent 24%),
    linear-gradient(135deg, rgba(201,123,122,.22), rgba(216,137,106,.20), rgba(127,159,131,.18)) !important;
}

.bbq-tone,
.taiso-section{
  background:
    radial-gradient(circle at 88% 12%, rgba(111,159,182,.16), transparent 24%),
    linear-gradient(180deg, rgba(255,247,236,.82), rgba(239,245,244,.82)) !important;
}

.checklist-section{
  background:linear-gradient(135deg, rgba(201,123,122,.96), rgba(216,137,106,.94), rgba(127,159,131,.94), rgba(111,159,182,.94)) !important;
}

.site-footer{
  background:linear-gradient(90deg, rgba(201,123,122,.96), rgba(216,137,106,.96), rgba(57,85,107,.96)) !important;
}

.audio-card{
  background:
    radial-gradient(circle at 16% 20%, rgba(255,255,255,.70), transparent 26%),
    linear-gradient(135deg, rgba(244,223,189,.42), rgba(216,137,106,.18), rgba(111,159,182,.18)) !important;
}

.audio-main audio{
  accent-color:var(--hawaii-coral);
}

.taiso-copy h2::after{
  content:" 🌺";
}

.lyrics-preview-header strong::after{
  content:" 〜ALOHA VERSION〜";
  display:block;
  margin-top:4px;
  font-size:14px;
  letter-spacing:.08em;
  opacity:.92;
}

@media(max-width:820px){
  body::after{
    font-size:28px;
    letter-spacing:10px;
    top:14%;
  }
}


/* === Flow color unified fix === */
.flow-card,
.flow-card.emphasis{
  background:rgba(255,250,244,.78) !important;
  color:var(--hawaii-ink) !important;
  border:1px solid rgba(255,255,255,.78) !important;
}

.flow-card strong,
.flow-card h3,
.flow-card p,
.flow-card.emphasis strong,
.flow-card.emphasis h3,
.flow-card.emphasis p{
  color:var(--hawaii-deep) !important;
  text-shadow:none !important;
}

.flow-card .num,
.flow-card.emphasis .num{
  background:linear-gradient(90deg, var(--hawaii-coral), var(--hawaii-sunset), var(--hawaii-ocean)) !important;
  color:#fff !important;
}

.flow-card.emphasis{
  box-shadow:var(--shadow) !important;
}


/* === BURIAN BAR TIME featured section === */
.bartime-section{
  background:
    radial-gradient(circle at 10% 14%, rgba(201,123,122,.18), transparent 22%),
    radial-gradient(circle at 88% 20%, rgba(111,159,182,.16), transparent 22%),
    linear-gradient(135deg, rgba(255,247,236,.92), rgba(242,237,232,.92));
}
.bartime-feature{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(300px,.78fr);
  gap:28px;
  align-items:stretch;
  padding:30px;
  border-radius:34px;
  background:rgba(255,250,244,.80);
  border:1px solid rgba(255,255,255,.80);
  box-shadow:var(--shadow);
}
.bartime-copy h2{
  margin:0 0 14px;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Times New Roman",Georgia,serif;
  font-size:clamp(40px,6vw,78px);
  line-height:1.05;
  color:var(--hawaii-deep);
}
.bartime-lead{
  margin:0;
  color:#5b6775;
  font-size:18px;
  line-height:1.9;
  font-weight:760;
}
.bartime-tags{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:20px;
}
.bartime-tags span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 16px;
  border-radius:999px;
  background:rgba(255,250,244,.72);
  color:var(--hawaii-deep);
  font-weight:850;
  border:1px solid rgba(92,104,118,.12);
  box-shadow:0 10px 24px rgba(92,86,102,.08);
}
.bartime-panel{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:10px;
  padding:28px 24px;
  border-radius:28px;
  color:#fff;
  background:linear-gradient(135deg, rgba(201,123,122,.94), rgba(216,137,106,.92), rgba(111,159,182,.92));
  box-shadow:var(--shadow);
  text-align:center;
}
.bartime-time{
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:clamp(42px,6vw,72px);
  line-height:1;
  font-weight:700;
}
.bartime-name{
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:clamp(28px,3.6vw,42px);
  line-height:1.1;
  font-weight:700;
}
.bartime-panel p{
  margin:0;
  color:rgba(255,255,255,.94);
  line-height:1.8;
  font-weight:760;
}

@media (max-width:900px){
  .bartime-feature{
    grid-template-columns:1fr;
    padding:22px;
  }
  .bartime-copy h2{
    font-size:clamp(34px,10vw,52px);
  }
  .bartime-lead{
    font-size:16px;
  }
}


/* === BURIAN GAMES featured section === */
.flow-grid{
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
}

.games-section{
  background:
    radial-gradient(circle at 12% 16%, rgba(127,159,131,.18), transparent 22%),
    radial-gradient(circle at 86% 18%, rgba(201,123,122,.16), transparent 24%),
    linear-gradient(135deg, rgba(239,245,244,.92), rgba(255,247,236,.92));
}
.games-feature{
  display:grid;
  grid-template-columns:minmax(300px,.78fr) minmax(0,1.1fr);
  gap:28px;
  align-items:stretch;
  padding:30px;
  border-radius:34px;
  background:rgba(255,250,244,.80);
  border:1px solid rgba(255,255,255,.80);
  box-shadow:var(--shadow);
}
.games-panel{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:10px;
  padding:28px 24px;
  border-radius:28px;
  color:#fff;
  background:linear-gradient(135deg, rgba(127,159,131,.94), rgba(111,159,182,.92), rgba(201,123,122,.88));
  box-shadow:var(--shadow);
  text-align:center;
}
.games-time{
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:clamp(34px,4.8vw,58px);
  line-height:1.05;
  font-weight:700;
}
.games-name{
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:clamp(34px,5vw,62px);
  line-height:1.05;
  font-weight:700;
}
.games-panel p{
  margin:0;
  color:rgba(255,255,255,.94);
  line-height:1.8;
  font-weight:760;
}
.games-copy h2{
  margin:0 0 14px;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Times New Roman",Georgia,serif;
  font-size:clamp(40px,6vw,78px);
  line-height:1.05;
  color:var(--hawaii-deep);
}
.games-lead{
  margin:0;
  color:#5b6775;
  font-size:18px;
  line-height:1.9;
  font-weight:760;
}
.games-tags{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:20px;
}
.games-tags span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 16px;
  border-radius:999px;
  background:rgba(255,250,244,.72);
  color:var(--hawaii-deep);
  font-weight:850;
  border:1px solid rgba(92,104,118,.12);
  box-shadow:0 10px 24px rgba(92,86,102,.08);
}

@media (max-width:1180px){
  .flow-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}

@media (max-width:900px){
  .games-feature{
    grid-template-columns:1fr;
    padding:22px;
  }
  .games-copy h2{
    font-size:clamp(34px,10vw,52px);
  }
  .games-lead{
    font-size:16px;
  }
}

@media (max-width:820px){
  .flow-grid{
    grid-template-columns:1fr !important;
  }
}


/* === Grand Finale featured section === */
.flow-grid{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}

.finale-section{
  background:
    radial-gradient(circle at 14% 12%, rgba(244,223,189,.24), transparent 24%),
    radial-gradient(circle at 86% 20%, rgba(201,123,122,.18), transparent 24%),
    linear-gradient(135deg, rgba(255,247,236,.96), rgba(239,245,244,.94));
}
.finale-feature{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(300px,.78fr);
  gap:28px;
  align-items:stretch;
  padding:30px;
  border-radius:34px;
  background:rgba(255,250,244,.82);
  border:1px solid rgba(255,255,255,.82);
  box-shadow:var(--shadow);
}
.finale-copy h2{
  margin:0 0 14px;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Times New Roman",Georgia,serif;
  font-size:clamp(44px,7vw,88px);
  line-height:1.02;
  color:var(--hawaii-deep);
}
.finale-lead{
  margin:0;
  color:#5b6775;
  font-size:18px;
  line-height:1.95;
  font-weight:760;
}
.finale-tags{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:20px;
}
.finale-tags span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 16px;
  border-radius:999px;
  background:rgba(255,250,244,.72);
  color:var(--hawaii-deep);
  font-weight:850;
  border:1px solid rgba(92,104,118,.12);
  box-shadow:0 10px 24px rgba(92,86,102,.08);
}
.finale-panel{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:10px;
  padding:30px 24px;
  border-radius:28px;
  color:#fff;
  background:
    radial-gradient(circle at 20% 18%, rgba(255,255,255,.24), transparent 30%),
    linear-gradient(135deg, rgba(216,137,106,.94), rgba(201,123,122,.92), rgba(57,85,107,.92));
  box-shadow:var(--shadow);
  text-align:center;
}
.finale-time{
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:clamp(42px,6vw,72px);
  line-height:1;
  font-weight:700;
}
.finale-name{
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:clamp(34px,5vw,66px);
  line-height:1.02;
  font-weight:700;
}
.finale-panel p{
  margin:0;
  color:rgba(255,255,255,.94);
  line-height:1.8;
  font-weight:760;
}

@media (max-width:900px){
  .finale-feature{
    grid-template-columns:1fr;
    padding:22px;
  }
  .finale-copy h2{
    font-size:clamp(38px,12vw,58px);
  }
  .finale-lead{
    font-size:16px;
  }
}
@media (max-width:820px){
  .flow-grid{
    grid-template-columns:1fr !important;
  }
}


/* === Official full event flow update === */
.official-flow{
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:16px !important;
}

.official-flow .flow-card{
  min-height:235px;
  background:rgba(255,250,244,.80) !important;
  color:var(--hawaii-ink) !important;
  border:1px solid rgba(255,255,255,.82) !important;
  box-shadow:var(--shadow) !important;
}

.official-flow .flow-card strong,
.official-flow .flow-card h3,
.official-flow .flow-card p{
  color:var(--hawaii-deep) !important;
  text-shadow:none !important;
}

.official-flow .flow-card strong{
  font-size:24px;
  line-height:1.1;
}

.official-flow .flow-card h3{
  font-size:22px;
  line-height:1.28;
}

.official-flow .flow-card p{
  font-size:14px;
  line-height:1.65;
}

.official-flow .flow-card .num{
  background:linear-gradient(90deg, var(--hawaii-coral), var(--hawaii-sunset), var(--hawaii-ocean)) !important;
  color:#fff !important;
}

.official-flow .flow-card.featured{
  background:
    radial-gradient(circle at 18% 16%, rgba(255,255,255,.42), transparent 28%),
    linear-gradient(180deg, rgba(255,250,244,.88), rgba(244,223,189,.38)) !important;
}

@media (max-width:1180px){
  .official-flow{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}

@media (max-width:820px){
  .official-flow{
    grid-template-columns:1fr !important;
  }
  .official-flow .flow-card{
    min-height:auto;
  }
}


/* === BRIAN BAR TIME image + details update === */
.bartime-feature-wide{
  grid-template-columns:minmax(0,1fr) minmax(360px,.92fr) !important;
  align-items:center;
}

.bartime-barcards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:24px;
}

.barcard{
  padding:18px;
  border-radius:24px;
  background:rgba(255,250,244,.74);
  border:1px solid rgba(255,255,255,.84);
  box-shadow:0 12px 28px rgba(76,74,87,.08);
}
.barcard-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:999px;
  margin-bottom:12px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  color:#fff;
}
.barcard.women .barcard-badge{
  background:linear-gradient(90deg, #c97b7a, #d9896a);
}
.barcard.men .barcard-badge{
  background:linear-gradient(90deg, #6f9fb6, #39556b);
}
.barcard h3{
  margin:0 0 8px;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:28px;
  line-height:1.15;
  color:var(--hawaii-deep);
}
.barcard p{
  margin:0;
  color:#5b6775;
  line-height:1.75;
  font-weight:760;
}

.bartime-note{
  margin-top:18px;
  padding:18px 20px;
  border-radius:22px;
  background:linear-gradient(135deg, rgba(255,255,255,.60), rgba(244,223,189,.40));
  border:1px solid rgba(255,255,255,.82);
}
.bartime-note strong{
  display:block;
  margin-bottom:6px;
  color:var(--hawaii-deep);
  font-size:24px;
}
.bartime-note p{
  margin:0;
}

.bartime-visual-card{
  overflow:hidden;
  border-radius:28px;
  background:rgba(255,250,244,.84);
  border:1px solid rgba(255,255,255,.82);
  box-shadow:var(--shadow);
}
.bartime-visual-card img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4 / 3;
  object-fit:cover;
}
.bartime-visual-caption{
  padding:18px 20px 20px;
}
.bartime-visual-caption span{
  display:block;
  margin-bottom:6px;
  color:#8e8069;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
}
.bartime-visual-caption strong{
  display:block;
  color:var(--hawaii-deep);
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:28px;
  line-height:1.2;
}

@media (max-width:980px){
  .bartime-feature-wide{
    grid-template-columns:1fr !important;
  }
}
@media (max-width:700px){
  .bartime-barcards{
    grid-template-columns:1fr;
  }
  .barcard h3{
    font-size:24px;
  }
}


/* === BRIAN BAR TIME showcase card === */
.barhero-feature{
  display:grid;
  grid-template-columns:minmax(320px,.92fr) minmax(0,1.08fr);
  gap:28px;
  align-items:stretch;
  padding:30px;
  border-radius:34px;
  background:rgba(255,250,244,.82);
  border:1px solid rgba(255,255,255,.82);
  box-shadow:var(--shadow);
}
.barhero-visual{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  min-height:520px;
  background:linear-gradient(135deg, rgba(201,123,122,.88), rgba(216,137,106,.82), rgba(111,159,182,.82));
}
.barhero-visual img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.barhero-overlay{
  position:absolute;
  inset:auto 18px 18px 18px;
  padding:22px 20px;
  border-radius:24px;
  background:linear-gradient(135deg, rgba(31,49,67,.70), rgba(38,61,84,.52));
  backdrop-filter:blur(8px);
  color:#fff;
  box-shadow:0 16px 40px rgba(0,0,0,.16);
}
.barhero-time{
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:clamp(40px,5vw,64px);
  line-height:1;
  font-weight:700;
}
.barhero-name{
  margin-top:8px;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:clamp(30px,4vw,54px);
  line-height:1.05;
  font-weight:700;
}
.barhero-overlay p{
  margin:12px 0 0;
  color:rgba(255,255,255,.95);
  font-size:18px;
  font-weight:760;
}

.barhero-copy h2{
  margin:0 0 14px;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Times New Roman",Georgia,serif;
  font-size:clamp(46px,6.6vw,86px);
  line-height:0.98;
  color:var(--hawaii-deep);
}
.barhero-lead{
  margin:0;
  color:#5b6775;
  font-size:20px;
  line-height:1.95;
  font-weight:760;
}
.barhero-tags{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:22px;
}
.barhero-tags span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 16px;
  border-radius:999px;
  background:rgba(255,250,244,.72);
  color:var(--hawaii-deep);
  font-weight:850;
  border:1px solid rgba(92,104,118,.12);
  box-shadow:0 10px 24px rgba(92,86,102,.08);
}
.barhero-mini-cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:22px;
}
.barmini-card{
  padding:18px;
  border-radius:24px;
  background:rgba(255,250,244,.74);
  border:1px solid rgba(255,255,255,.84);
  box-shadow:0 12px 28px rgba(76,74,87,.08);
}
.barmini-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:999px;
  margin-bottom:12px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  color:#fff;
}
.barmini-card.women .barmini-badge{
  background:linear-gradient(90deg, #c97b7a, #d9896a);
}
.barmini-card.men .barmini-badge{
  background:linear-gradient(90deg, #6f9fb6, #39556b);
}
.barmini-card h3{
  margin:0 0 8px;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:28px;
  line-height:1.15;
  color:var(--hawaii-deep);
}
.barmini-card p{
  margin:0;
  color:#5b6775;
  line-height:1.75;
  font-weight:760;
}

@media (max-width:980px){
  .barhero-feature{
    grid-template-columns:1fr;
    padding:22px;
  }
  .barhero-visual{
    min-height:420px;
  }
}
@media (max-width:700px){
  .barhero-mini-cards{
    grid-template-columns:1fr;
  }
  .barhero-lead{
    font-size:17px;
  }
  .barmini-card h3{
    font-size:24px;
  }
}


/* === Gallery featured poster update === */
.gallery-grid{
  align-items:stretch;
}
.gallery-card-featured{
  grid-column:span 2;
}
.gallery-card-featured .gallery-button img{
  aspect-ratio: 4 / 5;
}
@media (max-width:900px){
  .gallery-card-featured{
    grid-column:span 1;
  }
}



.bar-poster-tone{
  background:linear-gradient(135deg, rgba(122,101,110,.16), rgba(219,171,111,.16), rgba(140,168,181,.16));
}
.bar-info-list{
  margin:18px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:12px;
}
.bar-info-list li{
  padding:14px 16px;
  border-radius:16px;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(255,255,255,.72);
  color:#5f6b7b;
  font-weight:760;
  line-height:1.7;
  box-shadow:0 10px 24px rgba(80,74,86,.06);
}
.bar-info-list strong{
  color:#38475b;
}


/* === BAR TIME logo-style cards === */
.bar-logo-grid{
  margin-top:18px;
  display:grid;
  gap:16px;
}
.bar-logo-card{
  display:grid;
  grid-template-columns:92px 1fr;
  gap:16px;
  align-items:center;
  padding:18px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.78);
  box-shadow:0 14px 30px rgba(73,64,76,.08);
  backdrop-filter:blur(6px);
}
.bar-logo-card.ladies{
  background:linear-gradient(135deg, rgba(255,244,247,.96), rgba(255,235,241,.86), rgba(255,248,236,.84));
}
.bar-logo-card.gentlemen{
  background:linear-gradient(135deg, rgba(240,248,255,.96), rgba(231,241,250,.88), rgba(241,249,245,.84));
}
.bar-logo-mark{
  width:92px;
  height:92px;
  border-radius:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65), 0 10px 24px rgba(0,0,0,.08);
}
.bar-logo-card.ladies .bar-logo-mark{
  background:radial-gradient(circle at 30% 30%, #ffd7e1, #e27b9d 65%, #be587a 100%);
}
.bar-logo-card.gentlemen .bar-logo-mark{
  background:radial-gradient(circle at 30% 30%, #d8efff, #6ba7c8 65%, #417290 100%);
}
.bar-logo-icon{
  color:#fff;
  font-size:42px;
  line-height:1;
  font-weight:900;
  text-shadow:0 3px 12px rgba(0,0,0,.18);
}
.bar-logo-body{
  min-width:0;
}
.bar-logo-label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  margin-bottom:10px;
  font-size:11px;
  line-height:1;
  font-weight:900;
  letter-spacing:.14em;
  color:#fff;
  box-shadow:0 8px 18px rgba(0,0,0,.08);
}
.bar-logo-card.ladies .bar-logo-label{
  background:linear-gradient(90deg, #cb6f89, #e38e7d);
}
.bar-logo-card.gentlemen .bar-logo-label{
  background:linear-gradient(90deg, #5f8eae, #6eb49c);
}
.bar-logo-name{
  margin:0 0 6px;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:clamp(26px, 3vw, 36px);
  line-height:1.08;
  color:#38475b;
  letter-spacing:.02em;
}
.bar-logo-name span{
  display:inline-block;
  margin-right:.4em;
  font-size:.48em;
  padding:.28em .56em;
  border-radius:999px;
  vertical-align:middle;
  letter-spacing:.14em;
  color:#fff;
  transform:translateY(-2px);
}
.bar-logo-card.ladies .bar-logo-name span{
  background:linear-gradient(90deg, #d06e8e, #e6937c);
}
.bar-logo-card.gentlemen .bar-logo-name span{
  background:linear-gradient(90deg, #638fb0, #74b49d);
}
.bar-logo-card p{
  margin:0;
  color:#5f6b7b;
  font-weight:760;
  line-height:1.65;
}
@media (max-width:700px){
  .bar-logo-card{
    grid-template-columns:72px 1fr;
    gap:14px;
    padding:15px;
  }
  .bar-logo-mark{
    width:72px;
    height:72px;
    border-radius:20px;
  }
  .bar-logo-icon{
    font-size:34px;
  }
  .bar-logo-name{
    font-size:24px;
  }
}


/* === Final Check section update === */
.final-check-grid div{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.final-check-grid strong{
  display:block;
  color:#fff;
  font-size:18px;
  line-height:1.2;
}
.final-check-grid span{
  display:block;
  color:rgba(255,255,255,.88);
  font-size:14px;
  line-height:1.55;
  font-weight:750;
}


/* === BAR TIME navigation link fix === */
#bartime,
#flow,
#schedule,
#wow,
#games,
#finale,
#taiso,
#gallery,
#news,
#checklist{
  scroll-margin-top:120px;
}


/* === BRIAMBOREE 2026 watermark adjustment === */
@media(max-width:820px){
  body::after{
    content:"BRIAMBOREE 2026   BRIAMBOREE 2026";
    font-size:34px;
    letter-spacing:.12em;
    top:15%;
  }
}


/* === reliable TOP anchor === */
#page-top{
  position:absolute;
  top:0;
  left:0;
  width:1px;
  height:1px;
  pointer-events:none;
}


/* === Invite visual gallery update === */
.gallery-card-featured{
  grid-column:span 2;
}
.gallery-card-featured .gallery-button img{
  aspect-ratio: 1000 / 1414;
  object-fit:cover;
}
@media (max-width:900px){
  .gallery-card-featured{
    grid-column:span 1;
  }
}

/* === reliable TOP anchor === */
#page-top{
  position:absolute;
  top:0;
  left:0;
  width:1px;
  height:1px;
  pointer-events:none;
}
#bartime,#flow,#schedule,#wow,#games,#finale,#taiso,#gallery,#news,#checklist{
  scroll-margin-top:120px;
}


/* === Top hero poster first view === */
.hero.hero-poster-first{
  position:relative;
  min-height:calc(100vh - 82px);
  padding:72px 0 86px;
  overflow:hidden;
  background:
    radial-gradient(circle at 15% 18%, rgba(244,223,189,.38), transparent 26%),
    radial-gradient(circle at 88% 20%, rgba(201,123,122,.22), transparent 26%),
    linear-gradient(135deg, #fff7ec 0%, #f7efe7 42%, #eaf3f3 100%);
}
.hero.hero-poster-first::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(90deg, rgba(255,247,236,.78), rgba(255,247,236,.58), rgba(239,245,244,.72)),
    url('assets/images/top-hero-invite-poster.jpg') center/cover no-repeat;
  filter:blur(18px) saturate(1.08);
  transform:scale(1.06);
  opacity:.46;
}
.hero.hero-poster-first::after{
  content:"BRIAMBOREE 2026   BRIAMBOREE 2026   BRIAMBOREE 2026";
  position:absolute;
  left:-8vw;
  right:-8vw;
  top:13%;
  z-index:1;
  pointer-events:none;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:48px;
  letter-spacing:.18em;
  color:rgba(57,85,107,.075);
  transform:rotate(-8deg);
  white-space:nowrap;
}
.hero-poster-glow{
  position:absolute;
  inset:auto -10% -18% -10%;
  height:45%;
  z-index:1;
  background:radial-gradient(ellipse at 50% 0%, rgba(255,255,255,.82), transparent 62%);
  pointer-events:none;
}
.hero-poster-layout{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(320px, 0.86fr) minmax(0, 1fr);
  gap:42px;
  align-items:center;
}
.hero-poster-visual{
  border-radius:34px;
  padding:12px;
  background:rgba(255,250,244,.88);
  border:1px solid rgba(255,255,255,.86);
  box-shadow:0 30px 80px rgba(64,55,50,.18), 0 16px 40px rgba(201,123,122,.12);
}
.hero-main-poster-button{
  display:block;
  width:100%;
}
.hero-main-poster-button img{
  width:100%;
  aspect-ratio:1000 / 1414;
  object-fit:cover;
  border-radius:25px;
  box-shadow:0 12px 34px rgba(32,31,35,.10);
}
.hero-poster-copy{
  padding:28px;
  border-radius:34px;
  background:rgba(255,250,244,.58);
  border:1px solid rgba(255,255,255,.72);
  box-shadow:0 24px 60px rgba(92,86,102,.10);
  backdrop-filter:blur(8px);
}
.hero-poster-title{
  margin:18px 0 14px;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Times New Roman",Georgia,serif;
  line-height:.92;
  color:var(--hawaii-deep, #39556b);
}
.hero-poster-title span{
  display:block;
  font-size:clamp(50px, 6.6vw, 104px);
  letter-spacing:-.05em;
  font-weight:700;
}
.hero-poster-title strong{
  display:block;
  width:fit-content;
  margin-top:14px;
  padding:10px 24px 13px;
  border-radius:999px;
  color:#fff;
  font-size:clamp(42px,5vw,74px);
  font-weight:700;
  background:linear-gradient(90deg, var(--hawaii-coral, #c97b7a), var(--hawaii-sunset, #d9896a), var(--hawaii-ocean, #6f9fb6));
  box-shadow:0 14px 34px rgba(83,64,52,.14);
}
.hero-poster-lead{
  margin:0;
  color:#48586b;
  font-size:clamp(18px, 2vw, 26px);
  line-height:1.75;
  font-weight:850;
}
.hero-poster-first .hero-badges span{
  background:rgba(255,250,244,.78);
}
.hero-poster-first .poster-open{
  margin-top:10px;
}

@media (max-width:1040px){
  .hero-poster-layout{
    grid-template-columns:1fr;
  }
  .hero-poster-visual{
    max-width:720px;
    margin:0 auto;
  }
}
@media (max-width:820px){
  .hero.hero-poster-first{
    padding:36px 0 58px;
    min-height:auto;
  }
  .hero.hero-poster-first::after{
    font-size:30px;
    top:10%;
  }
  .hero-poster-layout{
    gap:24px;
  }
  .hero-poster-copy{
    padding:20px;
  }
  .hero-poster-title span{
    font-size:clamp(42px, 12vw, 66px);
  }
  .hero-poster-title strong{
    font-size:clamp(36px, 10vw, 54px);
  }
}


/* ===== Image-first story flow ===== */
.visual-story-intro{
  padding-top:44px;
  padding-bottom:26px;
}
.story-section{
  scroll-margin-top:108px;
}
.story-poster-card{
  position:relative;
}
.story-poster-card::after{
  content:"";
  position:absolute;
  inset:18px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.45);
  pointer-events:none;
}
.impact-note{
  font-size:1.12rem;
  line-height:1.9;
  font-weight:700;
}
.story-tags{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.story-tags span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(87,101,118,.10);
  color:#586678;
  font-weight:800;
  box-shadow:0 10px 20px rgba(93,85,101,.08);
}
.poster-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:24px;
}
.story-section .poster-copy{
  background:rgba(255,250,244,.58);
  border:1px solid rgba(255,255,255,.72);
  border-radius:28px;
  padding:28px;
  box-shadow:0 20px 40px rgba(92,86,102,.08);
  backdrop-filter:blur(6px);
}
.story-section .poster-copy h2{
  font-size:clamp(2.4rem, 5.2vw, 4.4rem);
  margin-bottom:14px;
}
.story-section .poster-copy .label{
  margin-bottom:14px;
}
.story-section .bbq-time{
  margin-top:18px;
}
.story-section .bar-logo-grid{
  margin-top:18px;
}
@media (max-width: 820px){
  .story-section .poster-copy{
    padding:20px;
  }
  .poster-actions{
    flex-direction:column;
  }
  .poster-actions .button{
    width:100%;
  }
}


/* ===== Full-bleed poster layout ===== */
.hero-poster-first{
  padding: 0 0 34px;
  background: linear-gradient(180deg, rgba(255,247,240,.95), rgba(250,244,238,.98));
}
.hero-full-image img{
  display:block;
  width:100%;
  height:auto;
}
.hero-story-copy{
  padding-top:24px;
}
.story-full-section{
  padding: 0 0 28px;
  background: linear-gradient(180deg, rgba(255,249,245,.95), rgba(246,241,235,.98));
}
.story-image-full{
  width:100%;
  line-height:0;
}
.story-image-full img{
  display:block;
  width:100%;
  height:auto;
}
.story-content-block{
  padding-top:20px;
}
.story-content-block h2{
  font-size: clamp(2.1rem, 5vw, 4rem);
  line-height:1.18;
  margin: 10px 0 14px;
}
.story-content-block p{
  font-size:1.05rem;
  line-height:1.9;
  color:#5e6777;
}
.story-badge-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.story-badge-row span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(111,124,138,.14);
  color:#5b6674;
  font-weight:800;
}
.story-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:22px;
}
.dress-tone{ background: linear-gradient(180deg, rgba(253,247,244,.96), rgba(250,242,237,.98)); }
.bbq-tone-lite{ background: linear-gradient(180deg, rgba(246,249,252,.96), rgba(239,244,248,.98)); }
.bar-tone-lite{ background: linear-gradient(180deg, rgba(252,247,241,.96), rgba(246,238,232,.98)); }

/* remove old framed story styling */
.visual-story-intro,
.story-poster-card,
.poster-open{
  display:none !important;
}
@media (max-width: 820px){
  .hero-story-copy{ padding-top:18px; }
  .story-content-block{ padding-top:16px; }
  .story-actions{
    flex-direction:column;
  }
  .story-actions .button{
    width:100%;
  }
}


/* ===== Vivid top image fix ===== */
.hero.hero-poster-first,
.hero-poster-first{
  padding-top:0 !important;
  background:#fff7ec !important;
}

.hero.hero-poster-first::before,
.hero.hero-poster-first::after,
.hero-poster-first::before,
.hero-poster-first::after{
  content:none !important;
  display:none !important;
  opacity:0 !important;
}

.hero-full-image{
  position:relative;
  z-index:2;
  width:100%;
  line-height:0;
  background:#000;
}

.hero-full-image img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  opacity:1 !important;
  filter:none !important;
  mix-blend-mode:normal !important;
  transform:none !important;
}

.hero-story-copy{
  position:relative;
  z-index:3;
  background:linear-gradient(180deg, rgba(255,247,236,.98), rgba(248,240,232,.98));
}


/* === Nagashi Pho-men position battle block === */
.phomen-battle-section{
  background:
    radial-gradient(circle at 12% 18%, rgba(212,160,107,.18), transparent 24%),
    radial-gradient(circle at 88% 16%, rgba(184,123,134,.16), transparent 24%),
    linear-gradient(135deg, rgba(255,247,236,.96), rgba(246,249,252,.96));
}
.phomen-battle-card{
  display:grid;
  grid-template-columns:minmax(300px,.72fr) minmax(0,1.08fr);
  gap:30px;
  align-items:center;
  padding:30px;
  border-radius:36px;
  background:rgba(255,250,244,.84);
  border:1px solid rgba(255,255,255,.86);
  box-shadow:var(--shadow);
}
.phomen-battle-image{
  border-radius:30px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 18px 44px rgba(34,48,67,.14);
  border:1px solid rgba(92,104,118,.10);
}
.phomen-battle-image img{
  width:100%;
  height:100%;
  min-height:420px;
  object-fit:cover;
}
.phomen-battle-copy h2{
  margin:0 0 14px;
  font-family:"Hiragino Mincho ProN","Yu Mincho","Times New Roman",Georgia,serif;
  font-size:clamp(38px,5.6vw,74px);
  line-height:1.06;
  color:var(--hawaii-deep);
}
.phomen-battle-lead{
  margin:0;
  color:#5b6775;
  font-size:18px;
  line-height:1.9;
  font-weight:760;
}
.phomen-battle-tags{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:20px;
}
.phomen-battle-tags span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 16px;
  border-radius:999px;
  background:rgba(255,250,244,.76);
  color:var(--hawaii-deep);
  font-weight:850;
  border:1px solid rgba(92,104,118,.12);
  box-shadow:0 10px 24px rgba(92,86,102,.08);
}
.phomen-game-buttons{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:24px;
}
.phomen-game-button{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:104px;
  padding:22px;
  border-radius:24px;
  color:#fff;
  background:linear-gradient(135deg, #223043, #465a72);
  box-shadow:0 14px 30px rgba(34,48,67,.18);
  border:1px solid rgba(255,255,255,.22);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
  cursor:default;
}
.phomen-game-button:hover{
  transform:translateY(-3px);
  box-shadow:0 20px 40px rgba(34,48,67,.22);
  filter:saturate(1.05);
}
.phomen-game-button.accent{
  background:linear-gradient(135deg, #b87b86, #d4a06b);
}
.phomen-game-button strong{
  font-size:20px;
  letter-spacing:.05em;
  line-height:1.12;
}
.phomen-game-button span{
  margin-top:8px;
  color:rgba(255,255,255,.88);
  font-size:14px;
  font-weight:800;
}
.news-item-latest{
  border-color:rgba(184,123,134,.26);
  background:linear-gradient(135deg, rgba(255,255,255,.92), rgba(255,247,236,.88));
}
@media (max-width:900px){
  .phomen-battle-card{
    grid-template-columns:1fr;
    padding:22px;
  }
  .phomen-battle-image img{
    min-height:0;
  }
  .phomen-battle-lead{
    font-size:16px;
  }
  .phomen-game-buttons{
    grid-template-columns:1fr;
  }
}


/* === Revised 12:00 onward time schedule === */
.schedule-revised-flow{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}
.schedule-revised-flow .flow-card{
  min-height:250px;
}
.schedule-revised-flow .flow-card h3{
  line-height:1.32;
  font-size:clamp(18px,1.8vw,23px);
}
.schedule-revised-flow .flow-card.featured{
  background:linear-gradient(135deg, rgba(255,250,244,.94), rgba(255,236,220,.82), rgba(232,242,243,.86)) !important;
  border-color:rgba(213,158,115,.30);
}
.final-check-grid div{
  min-height:86px;
}
@media (max-width:1180px){
  .schedule-revised-flow{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width:820px){
  .schedule-revised-flow{
    grid-template-columns:1fr !important;
  }
  .schedule-revised-flow .flow-card{
    min-height:auto;
  }
}


/* === Full day schedule update === */
.full-schedule-flow{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}
.full-schedule-flow .flow-card{
  min-height:242px;
}
.full-schedule-flow .flow-card h3{
  line-height:1.32;
  font-size:clamp(18px,1.75vw,23px);
}
.full-schedule-flow .flow-card.featured{
  background:linear-gradient(135deg, rgba(255,250,244,.94), rgba(255,236,220,.82), rgba(232,242,243,.86)) !important;
  border-color:rgba(213,158,115,.30);
}
.final-check-grid div{
  min-height:86px;
}
@media (max-width:1180px){
  .full-schedule-flow{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width:820px){
  .full-schedule-flow{
    grid-template-columns:1fr !important;
  }
  .full-schedule-flow .flow-card{
    min-height:auto;
  }
}


/* === Aloha style lecture modal for Cloudflare version === */
.aloha-lecture-cta{
  display:grid;
  grid-template-columns:1fr auto;
  gap:18px;
  align-items:center;
  margin:24px 0 8px;
  padding:20px;
  border-radius:26px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.90), rgba(255,244,231,.86)),
    radial-gradient(circle at 0% 0%, rgba(218,85,83,.14), transparent 36%);
  border:1px solid rgba(213,158,115,.30);
  box-shadow:0 18px 42px rgba(64,55,50,.10);
}
.aloha-lecture-cta-copy span{
  display:block;
  color:#c44946;
  font-weight:950;
  letter-spacing:.12em;
  font-size:12px;
  margin-bottom:6px;
}
.aloha-lecture-cta-copy strong{
  display:block;
  color:#39495e;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:clamp(23px,3vw,34px);
  line-height:1.25;
}
.aloha-lecture-cta-copy p{
  margin:8px 0 0;
  color:#5b6775;
  font-weight:800;
  line-height:1.7;
}
.aloha-lecture-button{
  appearance:none;
  border:none;
  cursor:pointer;
  white-space:nowrap;
  padding:15px 22px;
  border-radius:999px;
  color:#fff;
  font-weight:950;
  letter-spacing:.04em;
  background:linear-gradient(135deg, #d94f4b, #e5a45f, #37a7aa);
  box-shadow:0 16px 34px rgba(217,79,75,.22);
}
.aloha-lecture-button:hover{
  transform:translateY(-2px);
  filter:saturate(1.08);
  box-shadow:0 20px 44px rgba(217,79,75,.30);
}
.aloha-lecture-modal{
  position:fixed;
  inset:0;
  z-index:150;
  display:none;
}
.aloha-lecture-modal.is-open{
  display:block;
}
.aloha-lecture-backdrop{
  position:absolute;
  inset:0;
  background:rgba(24,29,37,.74);
  backdrop-filter:blur(7px);
}
.aloha-lecture-dialog{
  position:relative;
  width:min(94vw, 1040px);
  max-height:92vh;
  overflow:auto;
  margin:4vh auto 0;
  border-radius:30px;
  background:linear-gradient(180deg, #fffaf2, #fff);
  box-shadow:0 30px 88px rgba(0,0,0,.36);
  border:1px solid rgba(255,255,255,.66);
}
.aloha-lecture-close{
  position:sticky;
  top:14px;
  float:right;
  z-index:2;
  width:46px;
  height:46px;
  margin:14px 14px 0 0;
  border:none;
  border-radius:50%;
  background:rgba(255,255,255,.94);
  color:#39495e;
  font-size:32px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 12px 28px rgba(0,0,0,.14);
}
.aloha-lecture-head{
  padding:28px 34px 14px;
  text-align:center;
}
.aloha-lecture-head h2{
  margin:0;
  color:#39495e;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:clamp(32px,5vw,58px);
  line-height:1.1;
}
.aloha-lecture-head p:not(.label){
  margin:10px 0 0;
  color:#c44946;
  font-weight:900;
  letter-spacing:.06em;
}
.aloha-lecture-image-wrap{
  padding:0 22px 24px;
}
.aloha-lecture-image-wrap img{
  display:block;
  width:100%;
  height:auto;
  border-radius:22px;
  box-shadow:0 16px 48px rgba(42,47,58,.14);
}
body.aloha-modal-open{
  overflow:hidden;
}
@media (max-width:760px){
  .aloha-lecture-cta{
    grid-template-columns:1fr;
  }
  .aloha-lecture-button{
    width:100%;
  }
  .aloha-lecture-dialog{
    width:96vw;
    margin-top:2vh;
    max-height:96vh;
    border-radius:22px;
  }
  .aloha-lecture-head{
    padding:24px 18px 12px;
  }
  .aloha-lecture-image-wrap{
    padding:0 12px 16px;
  }
}


/* === Aloha lecture news update === */
.aloha-news-item{
  border-color:rgba(217,79,75,.30) !important;
  background:
    linear-gradient(135deg, rgba(255,250,244,.96), rgba(255,238,226,.86)),
    radial-gradient(circle at 100% 0%, rgba(55,167,170,.14), transparent 34%);
}
.news-lecture-link{
  margin-top:12px;
  appearance:none;
  border:none;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:11px 18px;
  border-radius:999px;
  color:#fff;
  font-weight:950;
  letter-spacing:.04em;
  background:linear-gradient(135deg, #d94f4b, #e5a45f, #37a7aa);
  box-shadow:0 14px 30px rgba(217,79,75,.20);
}
.news-lecture-link::after{
  content:"→";
  font-weight:950;
}
.news-lecture-link:hover{
  transform:translateY(-1px);
  box-shadow:0 18px 38px rgba(217,79,75,.28);
}


/* === Contact form section and news update === */
.contact-section{
  background:
    radial-gradient(circle at 12% 10%, rgba(218,85,83,.16), transparent 26%),
    radial-gradient(circle at 88% 16%, rgba(55,167,170,.15), transparent 28%),
    linear-gradient(135deg, rgba(255,250,244,.96), rgba(244,249,249,.98));
}
.contact-card{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(300px,.72fr);
  gap:26px;
  align-items:stretch;
  padding:30px;
  border-radius:34px;
  background:rgba(255,255,255,.76);
  border:1px solid rgba(255,255,255,.82);
  box-shadow:var(--shadow);
}
.contact-copy h2{
  margin:0 0 16px;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:clamp(38px,5.2vw,68px);
  line-height:1.1;
  color:#39495e;
}
.contact-copy p:not(.label){
  color:#5b6775;
  font-weight:800;
  line-height:1.9;
}
.contact-action-box{
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  padding:26px;
  border-radius:28px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,244,231,.90)),
    radial-gradient(circle at 100% 0%, rgba(55,167,170,.18), transparent 40%);
  border:1px solid rgba(213,158,115,.28);
  box-shadow:0 18px 42px rgba(64,55,50,.10);
}
.contact-icon{
  width:70px;
  height:70px;
  display:grid;
  place-items:center;
  border-radius:24px;
  margin-bottom:16px;
  color:#fff;
  font-size:36px;
  font-weight:950;
  background:linear-gradient(135deg, #d94f4b, #e5a45f, #37a7aa);
  box-shadow:0 14px 30px rgba(217,79,75,.18);
}
.contact-action-box strong{
  display:block;
  color:#39495e;
  font-size:24px;
  font-weight:950;
}
.contact-action-box p{
  color:#5b6775;
  font-weight:780;
  line-height:1.8;
}
.contact-form-button{
  margin-top:8px;
}
.contact-news-item{
  border-color:rgba(55,167,170,.30) !important;
  background:
    linear-gradient(135deg, rgba(255,250,244,.96), rgba(235,249,249,.86)),
    radial-gradient(circle at 100% 0%, rgba(218,85,83,.12), transparent 34%);
}
.news-contact-link{
  margin-top:12px;
  appearance:none;
  border:none;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:11px 18px;
  border-radius:999px;
  color:#fff;
  text-decoration:none;
  font-weight:950;
  letter-spacing:.04em;
  background:linear-gradient(135deg, #37a7aa, #e5a45f, #d94f4b);
  box-shadow:0 14px 30px rgba(55,167,170,.20);
}
.news-contact-link::after{
  content:"↗";
  font-weight:950;
}
.news-contact-link:hover{
  transform:translateY(-1px);
  box-shadow:0 18px 38px rgba(55,167,170,.28);
}
@media (max-width:820px){
  .contact-card{
    grid-template-columns:1fr;
    padding:20px;
  }
  .contact-action-box{
    padding:22px;
  }
}


/* === Vimeo embed for Marry Marble Taiso === */
.taiso-vimeo-card{
  margin-top:24px;
  padding:22px;
  border-radius:28px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.92), rgba(255,244,231,.86)),
    radial-gradient(circle at 100% 0%, rgba(55,167,170,.14), transparent 38%);
  border:1px solid rgba(213,158,115,.28);
  box-shadow:0 18px 42px rgba(64,55,50,.10);
}
.taiso-vimeo-copy h3{
  margin:6px 0 8px;
  font-family:"Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  font-size:clamp(28px,4vw,44px);
  line-height:1.18;
  color:#39495e;
}
.taiso-vimeo-copy p:not(.label){
  margin:0 0 18px;
  color:#5b6775;
  font-weight:800;
  line-height:1.8;
}
.vimeo-embed-frame{
  position:relative;
  width:100%;
  aspect-ratio:16 / 9;
  overflow:hidden;
  border-radius:22px;
  background:#111;
  box-shadow:0 18px 46px rgba(25,31,39,.22);
}
.vimeo-embed-frame iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
.taiso-movie-news-item{
  border-color:rgba(55,167,170,.30) !important;
  background:
    linear-gradient(135deg, rgba(255,250,244,.96), rgba(235,249,249,.86)),
    radial-gradient(circle at 100% 0%, rgba(218,85,83,.12), transparent 34%);
}
.news-taiso-movie-link{
  margin-top:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:11px 18px;
  border-radius:999px;
  color:#fff;
  text-decoration:none;
  font-weight:950;
  letter-spacing:.04em;
  background:linear-gradient(135deg, #37a7aa, #e5a45f, #d94f4b);
  box-shadow:0 14px 30px rgba(55,167,170,.20);
}
.news-taiso-movie-link::after{ content:"▶"; font-size:.82em; }
.news-taiso-movie-link:hover{
  transform:translateY(-1px);
  box-shadow:0 18px 38px rgba(55,167,170,.28);
}
@media (max-width:760px){
  .taiso-vimeo-card{ padding:16px; border-radius:22px; }
  .vimeo-embed-frame{ border-radius:16px; }
}


/* ===== Group photo guide ===== */
.group-photo-section{
  background: linear-gradient(180deg, rgba(248,250,252,.98), rgba(241,246,249,.98));
}
.group-photo-grid{
  display:grid;
  gap:28px;
  margin-top:26px;
}
.group-photo-card{
  display:grid;
  grid-template-columns:minmax(0, 0.95fr) minmax(0, 1.05fr);
  gap:22px;
  align-items:center;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(99,122,145,.14);
  border-radius:32px;
  padding:24px;
  box-shadow:0 24px 54px rgba(54,74,97,.08);
}
.group-photo-card-copy h3{
  font-size: clamp(1.6rem, 3vw, 2.5rem);
  line-height:1.25;
  margin: 8px 0 14px;
  color:#36485d;
}
.group-photo-card-copy p:not(.label){
  color:#617082;
  line-height:1.9;
}
.group-photo-image{
  border-radius:24px;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(111,124,138,.12);
}
.group-photo-image img{
  display:block;
  width:100%;
  height:auto;
}
.group-photo-actions{
  justify-content:center;
}
@media (max-width: 960px){
  .group-photo-card{
    grid-template-columns:1fr;
    padding:18px;
  }
}


/* === Group photo news update === */
.group-photo-news-item{
  border-color:rgba(55,167,170,.30) !important;
  background:
    linear-gradient(135deg, rgba(255,250,244,.96), rgba(235,249,249,.86)),
    radial-gradient(circle at 100% 0%, rgba(218,85,83,.12), transparent 34%);
}
.news-group-photo-link{
  margin-top:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:11px 18px;
  border-radius:999px;
  color:#fff;
  text-decoration:none;
  font-weight:950;
  letter-spacing:.04em;
  background:linear-gradient(135deg, #37a7aa, #e5a45f, #d94f4b);
  box-shadow:0 14px 30px rgba(55,167,170,.20);
}
.news-group-photo-link::after{
  content:"→";
  font-weight:950;
}
.news-group-photo-link:hover{
  transform:translateY(-1px);
  box-shadow:0 18px 38px rgba(55,167,170,.28);
}


/* === Group photo section popup buttons === */
.group-photo-popup-image{
  position:relative;
}
.group-photo-popup-button{
  display:block;
  position:relative;
  width:100%;
  padding:0;
  border:none;
  background:transparent;
  cursor:pointer;
  border-radius:24px;
  overflow:hidden;
}
.group-photo-popup-button img{
  display:block;
  width:100%;
  height:auto;
  transition:transform .28s ease, filter .28s ease;
}
.group-photo-popup-button span{
  position:absolute;
  right:14px;
  bottom:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:9px 13px;
  border-radius:999px;
  color:#fff;
  font-weight:900;
  font-size:13px;
  letter-spacing:.04em;
  background:rgba(20,31,48,.78);
  backdrop-filter:blur(6px);
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}
.group-photo-popup-button:hover img{
  transform:scale(1.018);
  filter:saturate(1.05) contrast(1.02);
}
.group-photo-popup-button:focus-visible{
  outline:4px solid rgba(55,167,170,.45);
  outline-offset:4px;
}
body.lightbox-open{
  overflow:hidden;
}
