*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#10070e;color:#f7eee4;font-family:Arial,sans-serif;line-height:1.55}.locked{overflow:hidden}.landing{position:fixed;inset:0;z-index:1000;height:100svh;overflow:hidden;display:grid;place-items:center;text-align:center;padding:28px;background:radial-gradient(circle at 50% 42%,#742451 0,#351027 38%,#10070e 73%)}.landing:before,.landing:after{content:"";position:absolute;width:38vw;height:38vw;border:1px solid rgba(239,189,93,.18);transform:rotate(45deg)}.landing:before{left:-22vw;top:-20vw}.landing:after{right:-22vw;bottom:-20vw}.landing-inner{position:relative;z-index:2;max-width:1000px}.kicker,.eyebrow{color:#efbd5d;font-size:.73rem;font-weight:800;letter-spacing:.26em}.landing h1{font:700 clamp(3.1rem,7vw,7rem)/.91 Georgia,serif;letter-spacing:-.035em;margin:.22em 0}.landing h1 em{font-weight:400;color:#efbd5d}.rule{height:1px;width:130px;background:#efbd5d;margin:26px auto}.eventline{font-weight:800;letter-spacing:.12em}.eventline span{color:#efbd5d;margin:0 12px}.landing p{color:#cdbfc8}.landing button,#music{cursor:pointer;border:1px solid #efbd5d;border-radius:99px;background:#efbd5d;color:#1a0914;padding:13px 19px;font-weight:800;letter-spacing:.05em}.landing button{margin-top:18px;padding:15px 23px}.landing button b{margin-left:10px}.ornament{position:absolute;color:#efbd5d;font-size:1.4rem}.ornament.top{top:6vh}.ornament.bottom{bottom:6vh}.landing.exit{animation:leave .65s ease forwards}@keyframes leave{to{opacity:0;transform:scale(1.025);visibility:hidden}}.site{opacity:0}.site.ready{opacity:1;transition:opacity .5s}.bar{position:sticky;top:0;z-index:50;background:rgba(16,7,14,.92);backdrop-filter:blur(10px);border-bottom:1px solid #3d2638}.wrap{width:min(1120px,calc(100% - 48px));margin:auto}.nav{height:70px;display:flex;align-items:center;justify-content:space-between}.nav>b{font-family:Georgia,serif;font-size:1.25rem}.nav>b i{color:#efbd5d;font-style:normal}.nav nav{display:flex;gap:28px}.nav a{color:#d9ccd4;text-decoration:none;font-size:.85rem}.nav #music{background:transparent;color:#efbd5d;padding:8px 12px}.intro{min-height:520px;display:grid;grid-template-columns:1.15fr .85fr;gap:90px;align-items:center}.intro h2,h2{font:600 clamp(2.8rem,5vw,5rem)/.98 Georgia,serif;margin:.16em 0}.lead{color:#c8bac3;font-size:1.1rem}.narrow{max-width:650px}.band{background:#1a0c18;padding:90px 0}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:38px}.cards article{overflow:hidden;background:#241020;border:1px solid #4b3044;border-radius:18px}.photo{height:220px;display:grid;place-items:center;background:linear-gradient(135deg,#3d1335,#8b3655)}.photo span{color:#efbd5d;font-weight:bold;letter-spacing:.2em}.cardcopy{padding:23px}.cardcopy small{color:#efbd5d}.cardcopy h3{font:1.7rem Georgia;margin:.25em 0}.cardcopy p{color:#c5b7c0}.awards,.hall{padding-top:100px;padding-bottom:100px}.years{display:grid;grid-template-columns:repeat(3,210px);justify-content:center;gap:55px;margin:55px auto}.years div{aspect-ratio:1;border:1px solid #efbd5d;border-radius:50%;display:grid;place-content:center;text-align:center}.years strong{font:4rem Georgia;color:#efbd5d;line-height:1}.years span{font-size:.75rem;letter-spacing:.2em;margin-top:8px}.note{text-align:center;color:#a995a2}.split{display:grid;grid-template-columns:1fr 380px;gap:100px;align-items:center}.ticket{border:1px solid #efbd5d;border-radius:20px;padding:30px;text-align:center;background:#120811}.ticket small,.ticket>span{color:#efbd5d;letter-spacing:.15em}.ticket h3{font:2rem Georgia;margin:8px}.qr{width:130px;height:130px;margin:22px auto;display:grid;place-items:center;background:#f7eee4;color:#1a0914;font-weight:bold}.layout{height:360px;border:1px solid #4b3044;border-radius:20px;display:grid;place-content:center;text-align:center;background:linear-gradient(135deg,#1d0d1a,#281222)}.layout span{color:#efbd5d;letter-spacing:.15em}.layout small{color:#a995a2;margin-top:8px}.faq details{border-top:1px solid #4b3044;padding:22px 0}.faq summary{cursor:pointer;color:#efbd5d;font-weight:800;list-style:none;display:flex;justify-content:space-between}.faq details p{color:#c8bac3}footer{text-align:center;padding:38px;color:#9f8c99;font-size:.78rem;letter-spacing:.08em}footer span{color:#efbd5d;margin:0 8px}
@media(max-width:780px){.wrap{width:min(100% - 32px,620px)}.nav nav{display:none}.nav{height:62px}.intro{min-height:auto;display:block;padding-top:80px;padding-bottom:80px}.intro .lead{margin-top:30px}.cards{grid-template-columns:1fr}.photo{height:180px}.years{grid-template-columns:repeat(3,1fr);gap:8px}.years div{width:100%;}.years strong{font-size:2.4rem}.split{grid-template-columns:1fr;gap:45px}.ticket{max-width:380px;margin:auto}.band{padding:70px 0}.awards,.hall{padding-top:80px;padding-bottom:80px}.landing h1{font-size:clamp(3rem,15vw,5.2rem)}.landing p{font-size:.9rem}.eventline{font-size:.8rem}}

/* ===== Prototype V3: mobile landing-page fit & safe-area refinement ===== */
.landing{
  min-height:100svh;
  padding:
    max(24px, env(safe-area-inset-top))
    max(20px, env(safe-area-inset-right))
    max(24px, env(safe-area-inset-bottom))
    max(20px, env(safe-area-inset-left));
}
.landing-inner{
  width:min(100%, 1080px);
  margin-inline:auto;
}
.landing h1{
  max-width:100%;
  overflow-wrap:normal;
  word-break:normal;
}
@media (max-width:780px){
  .landing{
    display:flex;
    align-items:center;
    justify-content:center;
    padding-top:max(28px, env(safe-area-inset-top));
    padding-bottom:max(28px, env(safe-area-inset-bottom));
    padding-left:max(18px, env(safe-area-inset-left));
    padding-right:max(18px, env(safe-area-inset-right));
  }
  .landing-inner{
    width:100%;
    max-width:430px;
  }
  .kicker{
    font-size:clamp(.58rem,2.7vw,.75rem);
    letter-spacing:.20em;
    white-space:nowrap;
  }
  .landing h1{
    font-size:clamp(2.65rem,12.4vw,4.2rem);
    line-height:.88;
    letter-spacing:-.045em;
    margin:.32em auto .28em;
    width:100%;
  }
  .landing h1 br{display:block}
  .landing h1 em{
    display:block;
    font-size:.77em;
    line-height:1.02;
    letter-spacing:-.035em;
    white-space:nowrap;
  }
  .rule{margin:20px auto;width:112px}
  .eventline{
    font-size:clamp(.67rem,3vw,.82rem);
    letter-spacing:.105em;
    white-space:nowrap;
  }
  .eventline span{margin:0 7px}
  .landing p{
    margin:13px auto 0;
    max-width:340px;
    font-size:clamp(.78rem,3.5vw,.94rem);
    line-height:1.35;
  }
  .landing button{
    margin-top:22px;
    width:min(100%,360px);
    padding:15px 18px;
    font-size:.78rem;
  }
  .ornament.top{top:max(3.5vh,env(safe-area-inset-top))}
  .ornament.bottom{bottom:max(3.5vh,env(safe-area-inset-bottom))}
}
@media (max-width:360px){
  .landing h1{font-size:2.55rem}
  .kicker{font-size:.55rem;letter-spacing:.16em}
  .eventline{font-size:.64rem;letter-spacing:.07em}
  .landing p{font-size:.78rem}
}
@media (max-height:700px) and (max-width:780px){
  .landing h1{font-size:clamp(2.35rem,10.5vw,3.35rem);margin:.22em auto}
  .rule{margin:14px auto}
  .landing button{margin-top:15px;padding:12px 16px}
  .landing p{margin-top:9px}
}


/* ===== Prototype V4: MGAN-inspired visible navigation / event microsite ===== */
.bar{
  position:relative;
  background:#10070e;
  border-bottom:1px solid #49303f;
}
.event-head{
  min-height:92px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.brand{
  font:700 1.8rem Georgia,serif;
  letter-spacing:.02em;
}
.brand i{font-style:normal;color:#efbd5d}
.brand small{
  display:block;
  margin-top:3px;
  color:#b9a9b4;
  font:700 .58rem Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.18em;
}
.event-head #music{
  background:transparent;
  color:#efbd5d;
  padding:10px 16px;
}
.main-nav{
  min-height:66px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px 34px;
  border-top:1px solid #2f1b29;
}
.main-nav a{
  position:relative;
  padding:21px 0 17px;
  color:#f1dca8;
  text-decoration:none;
  text-transform:uppercase;
  font:500 .82rem Georgia,serif;
  letter-spacing:.08em;
}
.main-nav a:after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:11px;
  height:1px;
  background:#efbd5d;
  transform:scaleX(0);
  transition:.2s ease;
}
.main-nav a:hover:after,.main-nav a:focus:after{transform:scaleX(1)}
.home-stage{
  min-height:650px;
  display:flex;
  align-items:flex-end;
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(12,5,11,.95),rgba(35,8,27,.58),rgba(12,5,11,.88)),
    radial-gradient(circle at 72% 40%,#7d2d55 0,#2c1025 32%,#10070e 68%);
}
.home-stage:after{
  content:"✦";
  position:absolute;
  right:9%;
  top:18%;
  color:#efbd5d;
  font-size:2.2rem;
}
.home-content{padding-top:100px;padding-bottom:100px}
.home-content h2{
  max-width:800px;
  font-size:clamp(4.2rem,8vw,7.8rem);
  margin:.12em 0;
}
.home-content p{
  max-width:620px;
  color:#d0c0c9;
  font-size:1.15rem;
}
.theme-section{
  padding:110px 0;
  background:linear-gradient(135deg,#1a0c18,#2a1022);
}
.theme-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:90px;
  align-items:center;
}
.theme-grid h2{margin:.18em 0}
.theme-grid h2 em{font-weight:400;color:#efbd5d}
.theme-copy .lead{margin-top:0}
.theme-detail{
  border-top:1px solid #654257;
  margin-top:32px;
  padding-top:25px;
  display:grid;
  gap:6px;
}
.theme-detail b{color:#efbd5d}
.theme-detail span{color:#bdaeba}

@media(max-width:780px){
  .bar{position:relative}
  .event-head{
    min-height:88px;
    padding-top:10px;
    padding-bottom:10px;
  }
  .brand{font-size:1.55rem}
  .brand small{font-size:.48rem;letter-spacing:.12em}
  .event-head #music{
    font-size:.72rem;
    padding:9px 12px;
    white-space:nowrap;
  }
  .main-nav{
    display:grid !important;
    grid-template-columns:repeat(3,1fr);
    gap:0;
    padding-top:11px;
    padding-bottom:13px;
    min-height:auto;
    border-top:1px solid #3b2534;
    border-bottom:1px solid #3b2534;
  }
  .main-nav a{
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    min-height:48px;
    padding:7px 5px;
    font-size:clamp(.62rem,2.65vw,.75rem);
    line-height:1.2;
    letter-spacing:.035em;
  }
  .main-nav a:after{bottom:3px;left:18%;right:18%}
  .home-stage{
    min-height:500px;
    align-items:center;
  }
  .home-content{
    padding-top:70px;
    padding-bottom:70px;
  }
  .home-content h2{
    font-size:clamp(3.2rem,14vw,5rem);
    line-height:.9;
  }
  .home-content p{
    max-width:92%;
    font-size:1rem;
  }
  .theme-section{padding:78px 0}
  .theme-grid{
    grid-template-columns:1fr;
    gap:24px;
  }
  .theme-grid h2{font-size:clamp(2.8rem,12vw,4.4rem)}
}
@media(max-width:390px){
  .brand small{display:none}
  .event-head{min-height:76px}
  .main-nav a{font-size:.59rem}
}
