/* ===== HERO ===== */
.hero{position:relative;overflow:hidden;min-height:calc(100vh - 64px);display:flex;align-items:center;padding:5rem 0 4rem;background:var(--bg2)}
.hero-ko-wall{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-6deg);margin:0;font-family:var(--f-ko);font-size:clamp(14rem,40vw,36rem);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,41,156,.22);white-space:nowrap;pointer-events:none;user-select:none}
.hero-inner{z-index:2}
/* logo lockup: off-white heavy caps on a black slab, pink Hangul, acid bar, slanted */
.logo{margin:0 0 0 .3em;display:inline-block;background:#000;padding:.06em .32em .18em .28em;transform:skewX(-9deg) rotate(-2.5deg);transform-origin:left bottom;box-shadow:0 18px 40px rgba(0,0,0,.5);line-height:.86}
.logo-main{display:block;font-family:var(--f-display);font-size:clamp(4.6rem,17vw,13.5rem);letter-spacing:-.015em;color:#EEE9DB;-webkit-text-stroke:0;filter:none}
.logo-ko-line{display:flex;flex-wrap:nowrap;align-items:center;gap:.5em;margin-top:.08em;padding-bottom:.02em}
.logo-hangul{font-family:var(--f-ko);font-size:clamp(2rem,6.6vw,5.3rem);color:var(--pink);line-height:1;white-space:nowrap;letter-spacing:-.02em}
.logo-sub{font-weight:700;letter-spacing:.14em;font-size:clamp(.6rem,1.25vw,.95rem);color:#EEE9DB;border-left:.22em solid var(--acid);padding-left:.8em;line-height:1.25;white-space:nowrap}
@media(max-width:600px){.logo{margin-left:.15em;padding:.06em .25em .16em .2em}.logo-ko-line{gap:.4em}}
.hero-tag{font-family:var(--f-display);font-size:clamp(1.3rem,3vw,2.2rem);color:var(--acid);margin:2.2rem 0 1.8rem;letter-spacing:.02em}
.hero-facts{list-style:none;margin:2.6rem 0 2.4rem;padding:1.2rem 0;display:grid;grid-template-columns:repeat(2,1fr);gap:1rem 2rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:760px}
@media(min-width:760px){.hero-facts{grid-template-columns:repeat(4,auto);justify-content:start;gap:1rem 3rem}}
.hero-facts span{display:block;font-size:.7rem;letter-spacing:.2em;color:var(--pink);font-weight:700}
.hero-facts strong{font-family:var(--f-display);font-size:1.35rem;letter-spacing:.02em;font-weight:400}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem 2rem}
.hero-music{margin:0;font-size:.8rem;letter-spacing:.18em;color:var(--muted);font-weight:700}
.hero-rule{position:absolute;left:0;right:0;bottom:0;height:6px;background:linear-gradient(90deg,var(--pink) 0 50%,var(--acid) 50%)}
@media(max-width:600px){.hero{padding:3.5rem 0 3rem;min-height:0}.hero-cta .btn{width:100%;text-align:center}}

/* ===== shared section rhythm ===== */
.about,.lineup,.venue,.tickets{padding:6rem 0}
.about,.venue{background:var(--bg)}
.lineup,.tickets{background:var(--bg2)}
.lineup{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* ===== ABOUT ===== */
.about-grid{display:grid;grid-template-columns:1fr;gap:2rem}
@media(min-width:900px){.about-grid{grid-template-columns:1.1fr 1fr;gap:4rem;align-items:start}}
.about .h2{text-transform:none;font-size:clamp(2rem,4.6vw,3.6rem);line-height:1.02}
.about-copy p{margin:0 0 1.2rem;font-size:1.1rem}
.about-copy p:first-child{font-size:1.25rem;color:var(--text)}
.about-copy .ko{color:var(--muted);border-top:1px solid var(--line);padding-top:1.2rem;margin-top:1.6rem}

/* ===== LINEUP ===== */
.schedule{list-style:none;margin:0;padding:0;border-top:2px solid var(--text)}
.schedule li{display:grid;grid-template-columns:6ch 1fr;gap:1.4rem;align-items:baseline;padding:1.1rem 0;border-bottom:1px solid var(--line)}
.schedule .t{font-family:var(--f-display);font-size:1.4rem;color:var(--acid);letter-spacing:.03em}
.schedule .a{font-family:var(--f-display);font-size:clamp(1.3rem,3vw,2rem);letter-spacing:.02em;text-transform:uppercase}
.schedule .a small{display:block;font-family:var(--f-body);font-size:.95rem;color:var(--muted);letter-spacing:0;text-transform:none;margin-top:.15rem}
.schedule li.hot{background:linear-gradient(90deg,rgba(255,41,156,.14),transparent);margin:0 -1rem;padding-left:1rem;padding-right:1rem}
.schedule li.hot .a{color:var(--pink)}
.schedule li.hot .t{color:var(--text)}
.countdown-block{margin-top:3rem;padding:2rem 0 0;border-top:2px solid var(--text)}
.countdown-label{font-size:.75rem;letter-spacing:.2em;color:var(--pink);font-weight:700;margin:0 0 1rem}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;max-width:720px}
.countdown div{display:flex;flex-direction:column}
.countdown .num{font-family:var(--f-display);font-size:clamp(2.6rem,8vw,5.5rem);line-height:1;color:var(--text);font-variant-numeric:tabular-nums}
.countdown small{font-size:.7rem;letter-spacing:.2em;color:var(--muted);font-weight:700;margin-top:.4rem}
.countdown-done{font-family:var(--f-display);font-size:clamp(1.6rem,4vw,2.6rem);color:var(--acid);margin:0}

/* ===== VENUE ===== */
.venue-grid{display:grid;grid-template-columns:1fr;gap:2rem;align-items:start}
@media(min-width:900px){.venue-grid{grid-template-columns:1.3fr 1fr;gap:3rem}.venue-grid .btn{grid-column:2}}
.venue-photo{margin:0;position:relative}
.venue-photo img{border:1px solid var(--line);filter:saturate(1.05)}
.venue-photo figcaption{font-size:.85rem;color:var(--muted);margin-top:.7rem;letter-spacing:.04em}
.details{margin:0;display:grid;grid-template-columns:1fr;gap:0}
.details dt{font-size:.7rem;letter-spacing:.2em;color:var(--pink);font-weight:700;text-transform:uppercase;margin-top:1rem}
.details dt:first-child{margin-top:0}
.details dd{margin:.2rem 0 .6rem;font-size:1rem;padding-bottom:.6rem;border-bottom:1px solid var(--line)}
.venue-grid .btn{justify-self:start;margin-top:.5rem}

/* ===== TICKETS ===== */
.ticket-row{display:grid;grid-template-columns:1fr;gap:1.6rem;max-width:900px}
@media(min-width:760px){.ticket-row{grid-template-columns:1fr 1fr}}
.ticket{position:relative;display:grid;grid-template-columns:1fr 64px;color:#000;filter:drop-shadow(0 12px 24px rgba(0,0,0,.45))}
.ticket-main{padding:1.4rem 1.3rem 1.3rem 1.6rem;position:relative;
  mask:radial-gradient(circle at left,transparent 10px,#000 10.5px) left/14px 100% no-repeat,linear-gradient(#000,#000) 14px 0/calc(100% - 14px) 100% no-repeat;
  -webkit-mask:radial-gradient(circle at left,transparent 10px,#000 10.5px) left/14px 100% no-repeat,linear-gradient(#000,#000) 14px 0/calc(100% - 14px) 100% no-repeat}
.ticket-stub{position:relative;border-left:3px dashed rgba(0,0,0,.5);display:grid;place-items:center;writing-mode:vertical-rl;font-weight:700;letter-spacing:.3em;font-size:.8rem;
  mask:radial-gradient(circle at right,transparent 10px,#000 10.5px) right/14px 100% no-repeat,linear-gradient(#000,#000) 0 0/calc(100% - 14px) 100% no-repeat;
  -webkit-mask:radial-gradient(circle at right,transparent 10px,#000 10.5px) right/14px 100% no-repeat,linear-gradient(#000,#000) 0 0/calc(100% - 14px) 100% no-repeat}
.ticket-presale .ticket-main,.ticket-presale .ticket-stub{background:var(--acid)}
.ticket-door .ticket-main,.ticket-door .ticket-stub{background:var(--text)}
.ticket-door .ticket-stub{background:var(--pink)}
.ticket h3{margin:0;font-size:.75rem;letter-spacing:.2em;font-weight:700}
.ticket .name-ko{font-family:var(--f-ko);font-size:1.15rem;margin:.2rem 0 0;color:#000}
.ticket .price{font-family:var(--f-display);font-size:3.8rem;line-height:1;margin:.4rem 0 .5rem}
.ticket .desc{margin:0 0 1.1rem;font-size:.95rem;min-height:3em;color:#222}
.ticket .btn{width:100%;text-align:center}
.ticket-presale .btn-primary{background:#000;color:var(--acid);border-color:#000}.ticket-presale .btn-primary:hover{background:var(--pink);color:#000;border-color:var(--pink)}
.ticket-door .btn-primary{background:#000;color:var(--text);border-color:#000}.ticket-door .btn-primary:hover{background:var(--pink);color:#000;border-color:var(--pink)}
.ticket .badge{position:absolute;right:14px;top:14px;background:var(--pink);color:#000;font-size:.7rem;letter-spacing:.15em;font-weight:700;padding:.3rem .6rem}
.barcode{height:26px;margin-top:1rem;background:repeating-linear-gradient(90deg,#000 0 2px,transparent 2px 4px,#000 4px 7px,transparent 7px 9px,#000 9px 10px,transparent 10px 13px);opacity:.85}
.ticket .stamp{position:absolute;right:16px;bottom:14px;font-size:.6rem;letter-spacing:.15em;font-weight:700;color:#000;border:2px solid #000;padding:.25rem .45rem;transform:rotate(-8deg);opacity:.75}
.ticket .stamp.soon{opacity:.45}

/* ===== FOOTER ===== */
.footer{padding:3rem 0;border-top:1px solid var(--line);background:var(--bg)}
.footer-grid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem}
.footer-logo{margin:0;display:inline-flex;align-items:baseline;gap:.45rem;background:#000;padding:.35rem .7rem .4rem .6rem;transform:skewX(-9deg);box-shadow:0 0 0 1px rgba(244,241,235,.08)}
.footer-logo .logo-en{color:#EEE9DB}
.footer-meta{margin:0;color:var(--muted);font-size:.9rem;letter-spacing:.05em}
.footer-links{margin:0;display:flex;gap:1.4rem;font-size:.9rem;font-weight:700;letter-spacing:.05em}
.footer-links a{color:var(--text);text-decoration:none}.footer-links a:hover{color:var(--acid)}

/* ===== HERO SCENE: 1999 dance floor ===== */
.hero-scene{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 40%;opacity:.7;filter:saturate(.9) contrast(1.05) brightness(.95)}
@media(max-width:600px){.hero-photo{object-position:68% 50%;opacity:.6}}
.haze{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,9,17,.78) 0%,rgba(11,9,17,.45) 45%,rgba(11,9,17,.15) 100%),linear-gradient(to bottom,rgba(11,9,17,.35) 0%,transparent 30%,transparent 60%,rgba(11,9,17,.75) 88%,var(--bg) 100%)}
.grain{position:absolute;inset:-50%;opacity:.16;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .7 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation:grain 1.2s steps(6) infinite}
.hero-ko-wall{z-index:1;-webkit-text-stroke-color:rgba(255,41,156,.12)}
.hero-inner{text-shadow:0 2px 30px rgba(11,9,17,.9)}
.hero .eyebrow{margin-bottom:1.8rem}


/* ===== ABOUT: compact editorial ===== */
.about{padding:4.5rem 0 5rem;background:var(--bg) linear-gradient(180deg,rgba(255,41,156,.06),transparent 40%)}
.about-ko-head{margin:0 0 1.2rem;font-family:var(--f-ko);font-size:clamp(2.6rem,7vw,5.6rem);line-height:1;color:var(--pink);white-space:nowrap;letter-spacing:.02em}
@media(max-width:380px){.about-ko-head{white-space:normal}}
@media(min-width:900px){.about-grid{grid-template-columns:1fr 1fr;gap:3.5rem}}
.about .h2{position:relative;padding-top:1rem;margin-bottom:0}
.about .h2::before{content:"";position:absolute;left:0;top:0;width:60px;height:4px;background:var(--acid)}
.about-copy .ko{margin-top:1.2rem;padding-top:1rem}

/* ===== LINEUP: left-rail composition ===== */
@media(min-width:900px){
  .lineup .wrap{display:grid;grid-template-columns:280px 1fr;gap:3rem;align-items:start}
  .lineup .section-num{grid-column:1}
  .lineup .h2{grid-column:1;position:sticky;top:96px}
  .lineup .schedule,.lineup .countdown-block{grid-column:2}
  .lineup .section-num{grid-row:1}.lineup .h2{grid-row:2}.lineup .schedule{grid-row:1/3}.lineup .countdown-block{grid-row:3;grid-column:1/3}
}

/* ===== VENUE: constrained photo + details ===== */
.venue-photo img{aspect-ratio:3/2;object-fit:cover;width:100%;border:1px solid var(--line)}
@media(min-width:900px){.venue-grid{grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr);gap:3rem}}

/* ===== TICKETS: centered, bold ===== */
.tickets{text-align:center;background:var(--bg2) radial-gradient(ellipse 60% 50% at 50% 100%,rgba(223,255,38,.08),transparent 70%)}
.tickets .lead,.ticket-row{margin-left:auto;margin-right:auto}
.ticket{text-align:left}

/* live availability line on the presale ticket */
.ticket .avail{margin:-.4rem 0 1rem;font-size:.72rem;font-weight:700;letter-spacing:.14em;color:#1B1024;opacity:.75}
.ticket .avail.low{opacity:1;color:var(--pink)}
.ticket .avail.out{opacity:1;color:var(--pink)}
