:root {
  --black: #050507;
  --black-soft: #0b0b10;
  --white: #f7f6f4;
  --muted: #aaa7b2;
  --pink: #ff176f;
  --pink-soft: #ff4e9b;
  --cyan: #11d9f4;
  --yellow: #ffc928;
  --purple: #7b35ff;
  --line: rgba(255,255,255,.13);
  --font-body: "Inter", sans-serif;
  --font-display: "Oswald", sans-serif;
  --font-brush: "Bangers", cursive;
  --font-digital: "Black Ops One", system-ui;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--black);
  color: var(--white);
  font-family: var(--font-body);
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 9999; padding: .8rem 1rem; background: #fff; color: #000; }
.skip-link:focus { top: 1rem; }
.container-xxl { max-width: 1480px; }
.site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 1000;
  border-bottom: 1px solid rgba(255,255,255,.11);
  background: linear-gradient(180deg, rgba(3,3,5,.92), rgba(3,3,5,.5), transparent);
}
.navbar-brand img{
    height:68px;
    width:auto;
    transition:.25s ease;
}
.navbar-brand:hover img{
    transform:scale(1.03);
}
.mobile-menu-logo{
    display:inline-flex;
    align-items:center;
    text-decoration:none;
}
.mobile-menu-logo img{
    display:block;
    width:auto;
    height:68px;
    max-width:220px;
    object-fit:contain;
}
@media (max-width:575.98px){
    .mobile-menu-logo img{
        height:68px;
        max-width:190px;
    }
}
.footer-logo{
    display:inline-flex;
    align-items:center;
    text-decoration:none;
}
.footer-logo img{
    display:block;
    width:auto;
    height:64px;
    max-width:250px;
    object-fit:contain;
    filter:drop-shadow(0 0 14px rgba(255, 35, 170, .28));
}
@media (max-width:575.98px){
    .footer-logo img{
        height:54px;
        max-width:220px;
    }
}
.header-shell { min-height: 104px; }
.brand { display: inline-flex; align-items: baseline; line-height: .85; font-family: var(--font-display); font-weight: 700; letter-spacing: -.055em; }
.brand-k { font-size: clamp(2.7rem, 3.6vw, 4rem); font-style: italic; color: var(--white); text-shadow: -3px 2px 0 var(--pink), 0 0 22px rgba(255,23,111,.22); }
.brand-dot { margin-left: .08em; font-size: clamp(1.35rem, 1.8vw, 1.9rem); color: var(--cyan); letter-spacing: -.03em; text-shadow: 0 0 16px rgba(17,217,244,.35); }
.desktop-nav { gap: clamp(1.75rem, 3vw, 3.7rem); }
.desktop-nav a { position: relative; padding: 2.55rem 0 2.35rem; color: rgba(255,255,255,.76); font-family: var(--font-display); text-transform: uppercase; font-size: 1rem; font-weight: 600; letter-spacing: .08em; }
.desktop-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:1.75rem; height:2px; background:linear-gradient(90deg,var(--pink),var(--cyan)); box-shadow:0 0 16px rgba(255,23,111,.45); transition:right .25s ease; }
.desktop-nav a:hover::after,.desktop-nav a:focus-visible::after { right:0; }
.desktop-nav a:hover,.desktop-nav a:focus-visible { color:#fff; }
.header-ticket {
  position: relative;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  min-height: 48px;
  padding: .65rem 1.25rem .58rem;
  border: 1px solid rgba(255,255,255,.28);
  background: rgba(4,4,7,.62);
  color: #fff;
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 600;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .11em;
  clip-path: polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
  transition: border-color .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease;
}
/*.header-ticket::before { content:""; position:absolute; inset:3px; border-left:2px solid var(--pink); border-bottom:2px solid var(--cyan); opacity:.8; pointer-events:none; }
.header-ticket:hover,.header-ticket:focus-visible { color:#fff; border-color:var(--cyan); box-shadow:0 0 26px rgba(17,217,244,.16), inset 0 0 22px rgba(255,23,111,.07); transform:translateY(-1px); }
.header-ticket-arrow { color:var(--pink); font-size:1.25rem; transition:transform .2s ease; }
.header-ticket:hover .header-ticket-arrow,.header-ticket:focus-visible .header-ticket-arrow { transform:translateX(4px); }*/
.menu-toggle { width:52px; height:52px; border:1px solid rgba(255,255,255,.2); background:rgba(0,0,0,.42); display:grid; place-content:center; gap:5px; }
.menu-toggle span { display:block; width:23px; height:2px; background:#fff; }
.mobile-menu { position:fixed; inset:0; z-index:2000; background:linear-gradient(rgba(5,5,7,.90),rgba(5,5,7,.94)), url('../img/k40-hero-bg-mobile.webp') center center/cover no-repeat; opacity:0; visibility:hidden; transform:translateY(-10px); transition:.3s ease; }
.mobile-menu.is-open { opacity:1; visibility:visible; transform:none; }
.mobile-menu-inner { min-height:100%; padding-top:1.5rem; padding-bottom:2rem; display:flex; flex-direction:column; }
.mobile-menu-top { padding-bottom:2rem; border-bottom:1px solid var(--line); }
.menu-close { border:0; background:none; color:#fff; font-size:3.2rem; line-height:1; }
.mobile-nav { display:flex; flex-direction:column; margin:auto 0; }
.mobile-nav a { display:grid; grid-template-columns:48px 1fr; align-items:center; padding:1rem 0; border-bottom:1px solid var(--line); font-family:var(--font-display); font-size:clamp(2.25rem,10vw,4.25rem); font-weight:600; line-height:1.08; letter-spacing:.005em; text-transform:uppercase; }
.mobile-nav a span { color:var(--pink); font-family:var(--font-body); font-size:.72rem; letter-spacing:.15em; }
.hero { position:relative; min-height:100svh; padding:clamp(9rem,13vw,12rem) 0 clamp(7.5rem,10vw,9rem); isolation:isolate; overflow:hidden; background:linear-gradient(115deg,#050507 0%,#090711 48%,#050507 100%); }
.hero::before { content:""; position:absolute; inset:0; z-index:-4; opacity:.42; background-image:radial-gradient(circle at 18% 20%, rgba(255,23,111,.18), transparent 24%),radial-gradient(circle at 82% 26%, rgba(17,217,244,.13), transparent 24%); }
.hero-grid { position:absolute; z-index:-3; left:-10%; right:-10%; bottom:-21%; height:58%; transform:perspective(480px) rotateX(63deg); transform-origin:center bottom; background-image:linear-gradient(rgba(255,23,111,.27) 1px,transparent 1px),linear-gradient(90deg,rgba(17,217,244,.23) 1px,transparent 1px); background-size:66px 45px; mask-image:linear-gradient(to bottom,transparent,black 30%,black); }

.hero-disco {
  position:absolute;
  z-index:-3;
  width:clamp(360px,42vw,720px);
  aspect-ratio:1;
  left:43%;
  top:6%;
  transform:translateX(-50%);
  border-radius:50%;
  opacity:.16;
  filter:drop-shadow(0 0 55px rgba(255,255,255,.12));
  background:
    radial-gradient(circle at 34% 28%,rgba(255,255,255,.95) 0 1%,transparent 2%),
    radial-gradient(circle at 50% 50%,rgba(255,255,255,.18),rgba(255,255,255,.03) 62%,transparent 70%),
    repeating-linear-gradient(0deg,rgba(255,255,255,.22) 0 2px,transparent 2px 26px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.2) 0 2px,transparent 2px 26px),
    conic-gradient(from 20deg,rgba(255,23,111,.24),rgba(17,217,244,.2),rgba(255,201,40,.14),rgba(255,23,111,.24));
  box-shadow:inset -50px -55px 90px rgba(0,0,0,.78),inset 26px 20px 62px rgba(255,255,255,.12);
}
.hero-disco::before {
  content:"";
  position:absolute;
  inset:-32%;
  border-radius:50%;
  background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.08) 0 1deg,transparent 1deg 13deg);
  mask:radial-gradient(circle,transparent 0 47%,#000 48% 58%,transparent 59%);
  animation:discoSpin 26s linear infinite;
}
.hero-disco::after {
  content:"";
  position:absolute;
  left:50%;
  top:-20%;
  width:2px;
  height:20%;
  background:linear-gradient(#8d8d99,rgba(255,255,255,.08));
}
.hero-disco span {
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:radial-gradient(circle at 26% 24%,rgba(255,255,255,.55),transparent 10%),radial-gradient(circle at 66% 48%,rgba(17,217,244,.18),transparent 22%),radial-gradient(circle at 42% 68%,rgba(255,23,111,.2),transparent 24%);
  animation:discoGlow 6s ease-in-out infinite;
}
@keyframes discoSpin { to { transform:rotate(360deg); } }
@keyframes discoGlow { 0%,100% { opacity:.6; } 50% { opacity:1; } }

.hero-glow { position:absolute; width:32rem; height:32rem; border-radius:50%; filter:blur(100px); opacity:.16; z-index:-2; }
.hero-glow-one { background:var(--pink); top:8%; left:-12rem; }
.hero-glow-two { background:var(--cyan); right:-12rem; bottom:6%; }
.hero-kicker,.eyebrow { display:flex; align-items:center; gap:.8rem; color:var(--cyan); font-family:var(--font-body); text-transform:uppercase; letter-spacing:.16em; font-size:.92rem; font-weight:700; }
.hero-kicker span { width:42px; height:2px; background:var(--pink); box-shadow:0 0 14px var(--pink); }
.hero-title { max-width:900px; display:flex; flex-wrap:wrap; align-items:baseline; column-gap:.14em; row-gap:.08em; font-family:var(--font-brush); font-size:clamp(4.6rem,8.4vw,8.8rem); line-height:1; letter-spacing:.012em; font-weight:400; text-transform:uppercase; transform:none; }
.hero-title span { display:inline-block; line-height:1; }
.title-pink { color:var(--pink); -webkit-text-stroke:1px rgba(255,255,255,.12); text-shadow:0 0 26px rgba(255,23,111,.32), 4px 5px 0 rgba(92,0,44,.82); }
.title-amp { margin:0; color:var(--white); font-size:.62em; text-shadow:0 0 24px rgba(255,255,255,.3); transform:rotate(4deg); }
.title-blue { color:var(--cyan); -webkit-text-stroke:1px rgba(255,255,255,.1); text-shadow:0 0 26px rgba(17,217,244,.28), 4px 5px 0 rgba(0,56,68,.82); }
.hero-lead { max-width:690px; color:#e2dfe6; font-size:clamp(1.15rem,1.7vw,1.45rem); line-height:1.5; font-weight:500; letter-spacing:.015em; }
.event-date-wrap { display:inline-block; position:relative; padding:.35rem .1rem .45rem; border-top:1px solid rgba(255,201,40,.55); border-bottom:1px solid rgba(255,201,40,.55); }
.event-date-wrap::before,.event-date-wrap::after { content:""; position:absolute; width:42px; height:1px; top:50%; background:linear-gradient(90deg,transparent,var(--yellow)); opacity:.6; }
.event-date-wrap::before { right:calc(100% + 14px); }
.event-date-wrap::after { left:calc(100% + 14px); transform:scaleX(-1); }
.event-date { color:var(--yellow); font-family:var(--font-digital); font-weight:400; font-size:clamp(2.9rem,5.5vw,5.9rem); line-height:1; letter-spacing:.01em; -webkit-text-stroke:1px rgba(255,236,151,.22); text-shadow:0 0 10px rgba(255,201,40,.58),0 0 34px rgba(255,201,40,.2),4px 5px 0 rgba(64,43,0,.96); }
.event-facts { --bs-gutter-x: .9rem; }
.fact-card {
  --fact-accent: var(--pink);
  position:relative;
  height:100%;
  min-height:126px;
  padding:1.2rem 1.25rem 1.05rem;
  border:1px solid rgba(255,255,255,.17);
  background:linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.018));
  backdrop-filter:blur(8px);
  clip-path:polygon(13px 0,100% 0,100% calc(100% - 13px),calc(100% - 13px) 100%,0 100%,0 13px);
  overflow:hidden;
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.fact-card::before { content:""; position:absolute; inset:0; border-top:3px solid var(--fact-accent); border-left:3px solid var(--fact-accent); opacity:.72; clip-path:inherit; pointer-events:none; }
.fact-card::after { content:""; position:absolute; width:95px; height:95px; right:-46px; bottom:-50px; border-radius:50%; background:var(--fact-accent); filter:blur(28px); opacity:.18; transition:opacity .25s ease,transform .25s ease; }
.fact-card:hover { transform:translateY(-5px); border-color:color-mix(in srgb,var(--fact-accent) 65%,white 10%); box-shadow:0 15px 40px rgba(0,0,0,.25),0 0 26px color-mix(in srgb,var(--fact-accent) 22%,transparent); }
.fact-card:hover::after { opacity:.32; transform:scale(1.2); }
.fact-time { --fact-accent:var(--pink); }
.fact-place { --fact-accent:var(--cyan); }
.fact-ticket { --fact-accent:var(--yellow); }
.fact-index { position:absolute; top:.8rem; right:1rem; color:rgba(255,255,255,.16); font-family:var(--font-display); font-size:1.1rem; letter-spacing:.08em; }
.fact-label { display:block; margin-bottom:.35rem; color:var(--fact-accent); font-family:var(--font-body); text-transform:uppercase; font-size:1rem; line-height:1; letter-spacing:.12em; font-weight:700; }
.fact-card strong { display:block; position:relative; z-index:1; font-family:var(--font-display); font-size:clamp(2.1rem,3vw,3.15rem); line-height:.95; font-weight:400; text-transform:uppercase; letter-spacing:.015em; }
.fact-card strong small { font-size:.55em; color:#fff; font-weight:500; letter-spacing:.08em; }
.fact-sub { display:block; position:relative; z-index:1; margin-top:.2rem; color:rgba(255,255,255,.62); font-size:.68rem; text-transform:uppercase; letter-spacing:.18em; }
.fact-ticket strong { color:var(--yellow); text-shadow:0 0 18px rgba(255,201,40,.22); }
.btn { border-radius:0; }
.btn-neon { display:inline-flex; align-items:center; justify-content:center; gap:1rem; min-height:58px; padding:.9rem 1.7rem; border:1px solid var(--pink); background:var(--pink); color:#fff; font-family:var(--font-display); text-transform:uppercase; letter-spacing:.13em; font-size:1.05rem; font-weight:600; box-shadow:0 0 26px rgba(255,23,111,.2); }
.btn-neon:hover,.btn-neon:focus-visible { background:transparent; color:#fff; border-color:var(--cyan); box-shadow:0 0 30px rgba(17,217,244,.22); }
.text-link { padding:.8rem 0; border-bottom:1px solid rgba(255,255,255,.35); color:#fff; text-transform:uppercase; letter-spacing:.1em; font-size:.75rem; font-weight:800; }
.poster-frame { position:relative; width:min(100%,620px); margin-inline:auto; padding:14px; background:linear-gradient(135deg,rgba(255,23,111,.8),rgba(17,217,244,.8)); box-shadow:0 0 0 1px rgba(255,255,255,.12),0 35px 95px rgba(0,0,0,.55),0 0 65px rgba(255,23,111,.13); transform:rotate(1.2deg); }
.poster-frame::before { content:""; position:absolute; inset:14px; z-index:1; pointer-events:none; box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
.poster-frame img { display:block; width:100%; height:auto; aspect-ratio:1/1; object-fit:contain; background:#000; }
.poster-corner { position:absolute; z-index:2; width:70px; height:70px; border-color:#fff; }
.poster-corner-a { top:-10px; left:-10px; border-left:2px solid var(--yellow); border-top:2px solid var(--yellow); }
.poster-corner-b { right:-10px; bottom:-10px; border-right:2px solid var(--cyan); border-bottom:2px solid var(--cyan); }
.hero-scroll { position:absolute; z-index:4; left:50%; bottom:1.45rem; display:flex; align-items:center; justify-content:center; width:48px; height:48px; color:#fff; transform:translateX(-50%); }
.hero-scroll i { display:block; width:24px; height:24px; border-right:3px solid var(--cyan); border-bottom:3px solid var(--pink); transform:rotate(45deg); filter:drop-shadow(0 0 7px var(--cyan)) drop-shadow(0 0 10px rgba(255,23,111,.45)); animation:scrollArrow 1.35s ease-in-out infinite; }
.hero-scroll::after { content:""; position:absolute; bottom:-6px; width:5px; height:5px; border-radius:50%; background:var(--cyan); box-shadow:0 0 14px var(--cyan); animation:scrollPulse 1.35s ease-in-out infinite; }
.hero-scroll:hover,.hero-scroll:focus-visible { color:#fff; }
.hero-bottom-line { position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg,transparent,var(--pink),var(--cyan),transparent); }
.event-strip { background:#08080b; border-bottom:1px solid var(--line); }
.strip-item { position:relative; display:grid; grid-template-columns:46px 1fr; align-items:center; min-height:118px; padding:1.5rem clamp(1rem,3vw,2.5rem); border-right:1px solid var(--line); }
.strip-item:last-child { border-right:0; }
.strip-item span { color:var(--pink); font-size:.68rem; letter-spacing:.15em; }
.strip-item strong { font-family:var(--font-display); text-transform:uppercase; font-size:1.65rem; line-height:1.12; letter-spacing:.035em; font-weight:600; }
.strip-item small { grid-column:2; color:var(--muted); font-size:.72rem; }
.section-dark,.info-section,.ticket-section { padding:clamp(5.5rem,9vw,9rem) 0; }
.section-dark { background:#050507; }
.info-section { background:#0b0b10;
  padding-left: 25px;
  padding-right: 25px;
 }
.info-section p a, .detail-card p a {color:var(--cyan)}
.info-section p a:hover, .detail-card p a:hover {color:var(--pink)text-decoration: underline;}
.section-title { max-width:980px; margin:0; font-family:var(--font-display); font-size:clamp(3.2rem,6vw,6.8rem); line-height:1.03; letter-spacing:-.012em; font-weight:600; text-transform:uppercase; text-wrap:balance; }
.section-intro { color:#b9b5c1; font-size:1.05rem; line-height:1.8; }
.feature-panel { position:relative; height:100%; min-height:330px; padding:clamp(1.8rem,4vw,3.5rem); border:1px solid var(--line); overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; }
.feature-panel::after { content:""; position:absolute; inset:auto -15% -55% auto; width:320px; height:320px; border-radius:50%; filter:blur(40px); opacity:.13; }
.feature-panel-main { background:linear-gradient(135deg,rgba(255,23,111,.09),rgba(255,255,255,.02)); }
.feature-panel-main::after { background:var(--pink); }
.feature-panel-side { background:linear-gradient(135deg,rgba(17,217,244,.08),rgba(255,255,255,.02)); }
.feature-panel-side::after { background:var(--cyan); }
.feature-index { color:rgba(255,255,255,.18); font-family:var(--font-display); font-size:5.2rem; line-height:.8; font-weight:600; letter-spacing:-.03em; }
.feature-tag { margin-bottom:.7rem; color:var(--pink); text-transform:uppercase; letter-spacing:.15em; font-size:.7rem; font-weight:800; }
.feature-panel-side .feature-tag { color:var(--cyan); }
.feature-panel h3 { max-width:780px; font-family:var(--font-display); font-size:clamp(2.2rem,3.8vw,4.2rem); line-height:1.08; letter-spacing:-.01em; font-weight:600; text-transform:uppercase; text-wrap:balance; }
.feature-panel p:last-child { max-width:760px; margin:1.2rem 0 0; color:#bbb7c3; line-height:1.7; }
.info-list { border-top:1px solid var(--line); }
.info-row { display:flex; justify-content:space-between; gap:2rem; padding:1.45rem 0; border-bottom:1px solid var(--line); }
.info-row span { color:#c7c3ce; text-transform:uppercase; letter-spacing:.11em; font-family:var(--font-body); font-size:1rem; font-weight:700; }
.info-row strong { font-family:var(--font-display); font-size:clamp(1.75rem,2.7vw,2.55rem); line-height:1; font-weight:400; text-transform:uppercase; text-align:right; letter-spacing:.015em; }
.ticket-section { background:#050507; padding-top:0; }
.ticket-box { position:relative; padding:clamp(2rem,5vw,5rem); overflow:hidden; background:linear-gradient(110deg,#ff176f 0%,#d00861 52%,#781b76 100%); box-shadow:0 35px 90px rgba(0,0,0,.35); }
.ticket-box::before { content:""; position:absolute; inset:0; opacity:.17; background-image:linear-gradient(45deg,transparent 45%,rgba(255,255,255,.2) 46%,transparent 47%); background-size:38px 38px; }
.ticket-box>* { position:relative; }
.ticket-box h2 { margin:0; max-width:920px; font-family:var(--font-display); font-size:clamp(3rem,6vw,6.2rem); line-height:1.04; letter-spacing:-.012em; text-transform:uppercase; font-weight:600; }
.ticket-box .eyebrow { color:#fff; }
.btn-light-ticket { /*min-height:64px;*/ padding:1rem 1.6rem; background:#fff; color:#08080b; font-family:var(--font-display); text-transform:uppercase; letter-spacing:.1em; font-size:1.05rem; font-weight:600; }
.btn-light-ticket:hover { background:#08080b; color:#fff; }
.site-footer { padding:5rem 0 1.5rem; background:#020203; border-top:1px solid var(--line); }
.footer-brand .brand-k { font-size:5rem; }
.footer-brand .brand-dot { font-size:2.2rem; }
.footer-copy { margin:1.3rem 0 0; color:var(--muted); }
.social-link { display:inline-flex; gap:.6rem; border-bottom:1px solid var(--pink); padding-bottom:.35rem; text-transform:uppercase; letter-spacing:.1em; font-size:.8rem; }
.social-link span { color:var(--pink); }
.footer-bottom { margin-top:4rem; padding-top:1.25rem; border-top:1px solid var(--line); color:#75727d; text-transform:uppercase; letter-spacing:.1em; font-size:.88rem; }
.footer-bottom  a:hover { color:var(--pink); }
@keyframes scrollArrow {
  0%,100% { opacity:.25; transform:translateY(-3px) rotate(45deg); }
  45% { opacity:1; transform:translateY(7px) rotate(45deg); }
}
@keyframes scrollPulse {
  0%,100% { opacity:.15; transform:scale(.6); }
  45% { opacity:1; transform:scale(1.15); }
}
@media (max-width: 1199.98px) {
  .hero-title { font-size:clamp(4rem,8.3vw,7.2rem); }
  .poster-frame { max-width:520px; }
  .fact-card strong { font-size:clamp(2rem,3vw,2.7rem); }
}
@media (max-width: 991.98px) {
  .hero-disco { left:50%; top:10%; width:min(78vw,620px); opacity:.12; }
  .site-header { position:absolute; }
  .header-shell { min-height:82px; }
  .hero { padding-top:8rem; }
  .hero-copy { text-align:center; }
  .hero-kicker { justify-content:center; }
  .hero-title { margin-inline:auto; }
  .hero-lead { margin-inline:auto; }
  .event-facts { text-align:left; }
  .hero .d-flex.flex-column { justify-content:center; }
  .poster-frame { margin-top:1rem; transform:none; max-width:650px; }
  .strip-item { border-right:0; border-bottom:1px solid var(--line); }
  .strip-item:last-child { border-bottom:0; }
  .feature-panel { min-height:290px; }
  .event-date-wrap::before,.event-date-wrap::after { display:none; }
}
@media (max-width: 575.98px) {
  .hero-disco { top:12%; width:92vw; opacity:.1; }
  .hero { padding-top:7rem; padding-bottom:7rem; }
  .hero-title { font-size:clamp(3.15rem,15vw,4.65rem); line-height:.9; }
  .title-amp { margin:.08em .02em; font-size:.52em; }
  .event-date { font-size:clamp(2.4rem,12.5vw,3.55rem); letter-spacing:-.07em; }
  .fact-card { min-height:110px; }
  .fact-label { font-size:.92rem; }
  .fact-card strong { font-size:2.5rem; }
  .poster-frame { padding:8px; }
  .poster-frame::before { inset:8px; }
  .section-title { font-size:clamp(3rem,15vw,4.8rem); }
  .feature-index { font-size:4rem; }
  .feature-panel h3 { font-size:2.35rem; }
  .info-row { flex-direction:column; gap:.5rem; }
  .info-row strong { text-align:left; }
  .ticket-box { margin-inline:-.75rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
}


/* Typography stability fixes */
.desktop-nav a, .header-ticket, .btn-neon, .btn-light-ticket { line-height: 1.2; }
.section-title, .feature-panel h3, .ticket-box h2, .info-row strong, .strip-item strong { overflow-wrap: normal; word-break: normal; hyphens: none; }
.feature-panel h3, .ticket-box h2 { margin-bottom: 0; }
@media (max-width: 767.98px) {
  .hero-title { justify-content:center; row-gap:.12em; }
  .hero-title .title-pink, .hero-title .title-blue { flex-basis:100%; }
  .hero-title .title-amp { flex-basis:auto; margin:.02em auto -.02em; }
  .section-title { line-height:1.08; }
  .feature-panel h3, .ticket-box h2 { line-height:1.1; }
}
/* Ikäraja-kortin typografinen hierarkia */
.feature-panel .age-title {
  margin: 0 0 .45rem;
  font-family: var(--font-display);
  font-size: clamp(3.2rem, 5.4vw, 5.8rem);
  line-height: 1;
  letter-spacing: -.015em;
  font-weight: 700;
  text-transform: uppercase;
}
.feature-panel .age-note {
  max-width: 27rem;
  margin: 0;
  color: #bbb7c3;
  font-family: var(--font-body);
  font-size: clamp(.88rem, 1.2vw, 1rem);
  line-height: 1.45;
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0;
}

/* Internal page templates */
.site-header-inner { position:absolute; }
.desktop-nav a.is-current { color:#fff; }
.desktop-nav a.is-current::after { right:0; }
.subhero {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:clamp(10rem,15vw,14rem) 0 clamp(5rem,8vw,8rem);
  background:linear-gradient(120deg,#050507 0%,#0a0710 58%,#050507 100%);
}
.subhero::before { content:""; position:absolute; inset:0; z-index:-3; background:radial-gradient(circle at 82% 22%,rgba(17,217,244,.14),transparent 28%),radial-gradient(circle at 18% 70%,rgba(255,23,111,.14),transparent 30%); }
.subhero-grid { position:absolute; z-index:-2; inset:0; opacity:.12; background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px); background-size:72px 72px; mask-image:linear-gradient(to bottom,transparent,black 25%,black 70%,transparent); }
.subhero-glow { position:absolute; z-index:-1; right:-12rem; top:15%; width:34rem; height:34rem; border-radius:50%; background:var(--purple); opacity:.13; filter:blur(105px); }
.subhero-title { margin:0; max-width:1100px; font-family:var(--font-display); font-size:clamp(4rem,8vw,8.5rem); line-height:1.02; letter-spacing:-.018em; font-weight:600; text-transform:uppercase; text-wrap:balance; }
.subhero-intro { color:#c4c0ca; font-size:clamp(1.05rem,1.4vw,1.25rem); line-height:1.75; }
.content-section,.schedule-section { padding:clamp(5.5rem,9vw,9rem) 0; background:#08080b; }
.page-index { position:sticky; top:2rem; display:flex; flex-direction:column; border-top:1px solid var(--line); }
.page-index-label { padding:1.1rem 0; color:var(--pink); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.16em; border-bottom:1px solid var(--line); }
.page-index a { padding:1rem 0; color:#c3bfca; font-family:var(--font-display); font-size:1.2rem; text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid var(--line); }
.page-index a:hover,.page-index a:focus-visible { color:var(--cyan); }
.content-block { padding:0 0 clamp(4rem,7vw,7rem); margin-bottom:clamp(4rem,7vw,7rem); border-bottom:1px solid var(--line); }
.content-block:last-child { margin-bottom:0; }
.content-block h2 { margin:.5rem 0 1.5rem; max-width:900px; font-family:var(--font-display); font-size:clamp(2.8rem,5vw,5.6rem); line-height:1.06; letter-spacing:-.012em; font-weight:600; text-transform:uppercase; text-wrap:balance; }
.content-block p { max-width:820px; color:#c2bec8; font-size:1.05rem; line-height:1.85; }
.content-block .lead-text { color:#fff; font-size:clamp(1.25rem,1.6vw,1.45rem); line-height:1.65; }
.neon-quote { position:relative; margin:2.5rem 0 0; padding:2rem 2.2rem 2rem 2.5rem; border-left:3px solid var(--pink); background:linear-gradient(90deg,rgba(255,23,111,.11),rgba(255,255,255,.015)); color:#fff; font-family:var(--font-display); font-size:clamp(1.8rem,3vw,3rem); line-height:1.2; text-transform:uppercase; }
.age-inline-note { font-size:clamp(.95rem,1.3vw,1.1rem)!important; color:#aaa6b1!important; }
.detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:2.5rem; }
.detail-card { min-height:220px; padding:2rem; border:1px solid var(--line); background:linear-gradient(145deg,rgba(17,217,244,.07),rgba(255,255,255,.015)); }
.detail-card span { display:block; margin-bottom:1rem; color:var(--cyan); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.16em; }
.detail-card strong { display:block; font-family:var(--font-display); font-size:clamp(2rem,3vw,3rem); line-height:1.08; text-transform:uppercase; }
.detail-card p { margin:1rem 0 0; font-size:.95rem; }
.faq-list { border-top:1px solid var(--line); }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { position:relative; padding:1.5rem 3rem 1.5rem 0; cursor:pointer; list-style:none; font-family:var(--font-display); font-size:clamp(1.35rem,2vw,2rem); line-height:1.25; text-transform:uppercase; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+"; position:absolute; right:0; top:50%; transform:translateY(-50%); color:var(--pink); font-size:2rem; }
.faq-list details[open] summary::after { content:"−"; color:var(--cyan); }
.faq-list details p { padding:0 0 1.5rem; margin:0; }
.inner-ticket-section { padding-top:0; background:#08080b; }
.schedule-hero .subhero-glow { background:var(--cyan); }
.schedule-sticky { position:sticky; top:2rem; padding:2rem; border:1px solid var(--line); background:linear-gradient(145deg,rgba(255,23,111,.1),rgba(255,255,255,.015)); }
.schedule-date { margin:.4rem 0 1.2rem; color:var(--yellow); font-family:var(--font-digital); font-size:clamp(4.5rem,8vw,7.5rem); line-height:1; text-shadow:0 0 24px rgba(255,201,40,.25); }
.schedule-sticky p { color:#bbb7c3; line-height:1.75; }
.timeline-list { position:relative; margin:0; padding:0; list-style:none; }
.timeline-list::before { content:""; position:absolute; left:8.4rem; top:0; bottom:0; width:1px; background:linear-gradient(var(--pink),var(--cyan),transparent); opacity:.55; }
.timeline-item { position:relative; display:grid; grid-template-columns:7rem 1fr; gap:3rem; padding:0 0 4rem; }
.timeline-item::before { content:""; position:absolute; left:8.08rem; top:.75rem; width:.7rem; height:.7rem; border-radius:50%; background:var(--cyan); box-shadow:0 0 18px var(--cyan); }
.timeline-item time { color:#fff; font-family:var(--font-digital); font-size:clamp(1.7rem,3vw,2.5rem); line-height:1; }
.timeline-tag { display:block; margin-bottom:.7rem; color:var(--pink); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.16em; }
.timeline-item h2 { margin:0 0 .8rem; font-family:var(--font-display); font-size:clamp(2.1rem,4vw,4.2rem); line-height:1.06; font-weight:600; text-transform:uppercase; }
.timeline-item p { max-width:720px; margin:0; color:#bcb8c3; line-height:1.75; }
.timeline-item.is-highlighted h2 { color:var(--cyan); text-shadow:0 0 22px rgba(17,217,244,.14); }
.schedule-note { margin:1rem 0 0 10rem; color:#77737e; font-size:.85rem; }
@media (max-width:991.98px) {
  .page-index,.schedule-sticky { position:static; }
  .page-index { margin-bottom:1rem; }
}
@media (max-width:767.98px) {
  .subhero { padding-top:8.5rem; }
  .subhero-title { font-size:clamp(3.2rem,14vw,5rem); line-height:1.06; }
  .detail-grid { grid-template-columns:1fr; }
  .timeline-list::before { left:4.55rem; }
  .timeline-item { grid-template-columns:3.8rem 1fr; gap:1.5rem; padding-bottom:3rem; }
  .timeline-item::before { left:4.25rem; }
  .timeline-item time { font-size:1.25rem; }
  .timeline-item h2 { font-size:2.15rem; }
  .schedule-note { margin-left:5.3rem; }
}

/* K40 master v9: desktop header + homepage hero refresh */
@media (min-width: 992px) {
  .site-header {
    border-bottom: 0;
    background: linear-gradient(180deg, rgba(2,2,4,.78) 0%, rgba(2,2,4,.28) 62%, transparent 100%);
  }
  .header-shell { min-height: 92px; }
  .desktop-nav { gap: clamp(2rem,3vw,4rem); }
  .desktop-nav a {
    padding: 2.15rem 0 2rem;
    color: rgba(255,255,255,.82);
    font-size: .94rem;
    letter-spacing: .075em;
  }
  .desktop-nav a::after { bottom: 1.45rem; height: 1px; }
  .header-ticket {
    min-height: 46px;
    padding: .68rem 1.3rem .62rem;
    border-color: rgba(255,255,255,.42);
    background: rgba(5,5,8,.24);
    backdrop-filter: blur(10px);
    clip-path: none;
  }
  .header-ticket::before { display:none; }
  /*.header-ticket:hover,.header-ticket:focus-visible {
    border-color: var(--pink);
    background: var(--pink);
    box-shadow: 0 0 28px rgba(255,23,111,.22);
  }*/
  .header-ticket:hover .header-ticket-arrow,.header-ticket:focus-visible .header-ticket-arrow { color:#fff; }
}

.hero-stage {
  min-height: 100svh;
  display: flex;
  align-items: center;
  padding: clamp(9rem,13vw,12rem) 0 clamp(7rem,10vw,9rem);
  background: #050507;
}
.hero-stage::before { display:none; }
.hero-stage-media {
  position:absolute;
  inset:0;
  z-index:-5;
  background-image:url('../img/k40-hero-bg.png');
  background-size:cover;
  background-position:center;
  transform:scale(1.025);
  filter:saturate(.92) contrast(1.06);
}
.hero-stage-shade {
  position:absolute;
  inset:0;
  z-index:-4;
  background:
    linear-gradient(180deg,rgba(3,3,5,.5) 0%,rgba(3,3,5,.18) 25%,rgba(3,3,5,.38) 66%,#050507 100%),
    radial-gradient(circle at 50% 42%,rgba(5,5,8,.08) 0%,rgba(5,5,8,.28) 48%,rgba(5,5,8,.82) 100%);
}
.hero-stage-glow { position:absolute; z-index:-3; border-radius:50%; filter:blur(110px); opacity:.18; }
.hero-stage-glow-pink { width:38rem; height:38rem; left:-18rem; top:22%; background:var(--pink); }
.hero-stage-glow-cyan { width:36rem; height:36rem; right:-16rem; bottom:5%; background:var(--cyan); }
.hero-stage-container { width:100%; }
.hero-stage-content { max-width:1080px; position:relative; z-index:2; }
.hero-stage-kicker { justify-content:center; color:#fff; text-shadow:0 2px 14px rgba(0,0,0,.75); }
.hero-stage-kicker span { width:38px; background:linear-gradient(90deg,transparent,var(--pink)); }
.hero-stage-kicker span:last-child { background:linear-gradient(90deg,var(--cyan),transparent); }
.hero-stage-title { margin-inline:auto; }
.hero-stage-title-main {
  display:block;
  color:#fff;
  font-family:var(--font-brush);
  font-size:clamp(5rem,11.4vw,12.5rem);
  font-weight:400;
  line-height:.82;
  letter-spacing:.012em;
  text-transform:uppercase;
  text-shadow:
    0 6px 0 rgba(0,0,0,.45),
    0 0 30px rgba(255,23,111,.18),
    0 0 55px rgba(17,217,244,.12);
  text-wrap:balance;
}
.hero-stage-lead {
  max-width:760px;
  margin-inline:auto;
  color:rgba(255,255,255,.9);
  font-size:clamp(1.08rem,1.55vw,1.38rem);
  line-height:1.65;
  text-shadow:0 2px 18px rgba(0,0,0,.78);
}
.hero-stage-date {
  color:var(--yellow);
  font-family:var(--font-digital);
  font-size:clamp(3rem,5.4vw,5.8rem);
  line-height:1;
  letter-spacing:.015em;
  text-shadow:0 0 14px rgba(255,201,40,.55),0 4px 16px rgba(0,0,0,.7);
}
.hero-stage-meta {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:clamp(.7rem,1.6vw,1.4rem);
  margin:1.25rem auto 2.15rem;
  color:#fff;
  font-family:var(--font-display);
  font-size:clamp(1.05rem,1.5vw,1.35rem);
  font-weight:600;
  line-height:1.2;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-shadow:0 2px 14px rgba(0,0,0,.78);
}
.hero-stage-meta i { width:5px; height:5px; border-radius:50%; background:var(--pink); box-shadow:0 0 12px var(--pink); }
.hero-stage-ticket {
  min-width:190px;
  min-height:62px;
  border-color:var(--pink);
  box-shadow:0 0 32px rgba(255,23,111,.25),0 14px 34px rgba(0,0,0,.25);
}
.hero-stage-link { text-shadow:0 2px 12px rgba(0,0,0,.85); }
.hero-stage-poster {
  position:absolute;
  right:clamp(1rem,2.8vw,3.5rem);
  bottom:clamp(4.5rem,7vw,7.5rem);
  width:clamp(150px,13vw,215px);
  padding:6px;
  background:linear-gradient(135deg,var(--pink),var(--cyan));
  box-shadow:0 24px 65px rgba(0,0,0,.58),0 0 30px rgba(17,217,244,.12);
  transform:rotate(2deg);
}
.hero-stage-poster img { display:block; width:100%; height:auto; background:#000; }

@media (max-width: 991.98px) {
  .hero-stage { padding-top:8rem; }
  .hero-stage-media { background-position:58% center; }
  .hero-stage-title-main { font-size:clamp(4.3rem,17vw,8rem); line-height:.86; }
}
@media (max-width: 575.98px) {
  .hero-stage { min-height:100svh; padding-top:7rem; padding-bottom:6.5rem; }
  .hero-stage-media { background-position:61% center; }
  .hero-stage-shade { background:linear-gradient(180deg,rgba(3,3,5,.62),rgba(3,3,5,.32) 38%,rgba(3,3,5,.74) 78%,#050507); }
  .hero-stage-kicker { font-size:.72rem; letter-spacing:.13em; }
  .hero-stage-kicker span { width:24px; }
  .hero-stage-title-main { font-size:clamp(3.7rem,18vw,5.8rem); line-height:.9; }
  .hero-stage-lead { font-size:1rem; line-height:1.55; }
  .hero-stage-date { font-size:clamp(2.5rem,12vw,3.4rem); }
  .hero-stage-meta { gap:.55rem .75rem; font-size:.9rem; letter-spacing:.06em; }
  .hero-stage-meta i { width:4px; height:4px; }
  .hero-stage-actions { width:100%; }
  .hero-stage-ticket { width:100%; max-width:320px; }
}

/* K40 master v10: text-free hero artwork + HTML typography */
.hero-stage-media {
  background-image:url('../img/k40-hero-bg-clean.png');
  background-position:center;
  transform:none;
  filter:saturate(1.02) contrast(1.04);
}
.hero-stage-title {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:baseline;
  column-gap:clamp(.12em,.8vw,.24em);
  row-gap:.08em;
  max-width:1180px;
  line-height:.84;
}
.hero-stage-title-pink,
.hero-stage-title-cyan,
.hero-stage-title-amp {
  display:inline-block;
  font-family:var(--font-brush);
  font-size:clamp(5rem,10.2vw,11rem);
  font-weight:400;
  line-height:.84;
  letter-spacing:.012em;
  text-transform:uppercase;
  text-shadow:0 6px 0 rgba(0,0,0,.45),0 0 30px currentColor;
}
.hero-stage-title-pink { color:var(--pink); }
.hero-stage-title-cyan { color:var(--cyan); }
.hero-stage-title-amp {
  color:#fff;
  font-size:clamp(3.8rem,7vw,7.8rem);
  text-shadow:0 6px 0 rgba(0,0,0,.45),0 0 26px rgba(255,255,255,.26);
}
.hero-stage-subtitle {
  color:var(--pink);
  font-family:var(--font-display);
  font-size:clamp(1.05rem,1.7vw,1.55rem);
  font-weight:600;
  line-height:1.25;
  letter-spacing:.24em;
  text-transform:uppercase;
  text-shadow:0 2px 18px rgba(0,0,0,.9),0 0 18px rgba(255,23,111,.22);
}
@media (max-width:991.98px) {
  .hero-stage-media { background-position:center; }
  .hero-stage-title-pink,
  .hero-stage-title-cyan { font-size:clamp(4.3rem,16vw,7.4rem); }
  .hero-stage-title-amp { font-size:clamp(3.1rem,11vw,5.2rem); }
}
@media (max-width:575.98px) {
  .hero-stage-title { column-gap:.12em; row-gap:.02em; }
  .hero-stage-title-pink,
  .hero-stage-title-cyan {
    flex-basis:100%;
    font-size:clamp(3.7rem,18vw,5.6rem);
    line-height:.88;
  }
  .hero-stage-title-amp {
    flex-basis:100%;
    margin:.02em 0;
    font-size:clamp(2.5rem,11vw,3.8rem);
    line-height:.8;
  }
  .hero-stage-subtitle {
    font-size:.9rem;
    letter-spacing:.14em;
  }
}

/* K40 poster-style desktop header and homepage hero – v11 */
@media (min-width: 992px) {
  .site-header {
    background: rgba(2,2,4,.94);
    border-bottom-color: rgba(255,23,111,.75);
    box-shadow: 0 12px 36px rgba(0,0,0,.38);
  }
  .header-shell { min-height: 116px; }
  .desktop-nav-numbered { gap: 0; margin-left: clamp(1rem,2.4vw,2.8rem); }
  .desktop-nav-numbered a {
    display: grid;
    grid-template-rows: auto auto;
    min-width: clamp(118px,9vw,154px);
    padding: 1.55rem clamp(1rem,1.4vw,1.5rem) 1.45rem;
    border-left: 1px solid rgba(255,255,255,.09);
    line-height: 1;
  }
  .desktop-nav-numbered a:last-child { border-right: 1px solid rgba(255,255,255,.09); }
  .desktop-nav-numbered a::after { display:none; }
  .desktop-nav-numbered .nav-number {
    margin-bottom: .32rem;
    color: var(--pink);
    font-family: var(--font-display);
    font-size: 1.35rem;
    font-weight: 400;
    letter-spacing: .04em;
  }
  .desktop-nav-numbered a:nth-child(even) .nav-number { color: var(--cyan); }
  .desktop-nav-numbered .nav-label {
    color: #f7f6f4;
    font-size: 1.4rem;
    font-weight: 500;
    letter-spacing: .045em;
  }
  .desktop-nav-numbered a:hover,
  .desktop-nav-numbered a:focus-visible { background:rgba(255,255,255,.035); }
  .header-ticket-stack {
    min-width: 220px;
    min-height: 76px;
    padding: .75rem 1.4rem;
    flex-direction: column;
    gap: .2rem;
    border-color: var(--cyan);
    clip-path: polygon(14px 0,calc(100% - 14px) 0,100% 14px,100% calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 14px),0 14px);
    box-shadow: 0 0 22px rgba(17,217,244,.16), inset 0 0 26px rgba(17,217,244,.04);
  }
  .header-ticket-stack::before { inset:4px; border:0; box-shadow:inset 0 0 0 1px rgba(255,23,111,.42); clip-path:inherit; }
  .header-ticket-stack strong { color:var(--yellow); font-size:1.28rem; letter-spacing:.06em; }
  .header-ticket-stack small { color:var(--pink-soft); font-size:.78rem; letter-spacing:.14em; }
}

.hero-poster-stage {
  min-height: 100svh;
  padding: clamp(10.5rem,13vw,12.5rem) 0 5.2rem;
  display:flex;
  align-items:center;
  background:#020204;
}
.hero-poster-bg {
  position:absolute;
  inset:0;
  z-index:-3;
  background-image:url('../img/k40-hero-bg-clean.png');
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}
.hero-poster-overlay {
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    radial-gradient(circle at 50% 42%,rgba(0,0,0,.06),rgba(0,0,0,.5) 54%,rgba(0,0,0,.84) 100%),
    linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.08) 58%,rgba(0,0,0,.52));
}
.hero-poster-container { width:100%; }
.hero-poster-content { position:relative; z-index:2; max-width:920px; }
.hero-poster-title {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(.2rem,1vw,.8rem);
  margin:0 0 .15rem;
  font-family:var(--font-brush);
  line-height:.84;
  text-transform:uppercase;
  transform:rotate(-1deg);
}
.hero-word { font-size:clamp(5rem,9.3vw,10rem); letter-spacing:.01em; }
.hero-word-pink { color:var(--pink-soft); text-shadow:0 0 20px rgba(255,23,111,.48),5px 6px 0 rgba(101,0,56,.46); }
.hero-word-cyan { color:var(--cyan); text-shadow:0 0 20px rgba(17,217,244,.4),5px 6px 0 rgba(0,83,97,.48); }
.hero-amp { color:#fff; font-size:clamp(3.8rem,6.4vw,7rem); text-shadow:0 0 18px rgba(255,255,255,.35); transform:rotate(-5deg); }
.hero-poster-subtitle {
  margin:0 0 1rem;
  color:var(--pink-soft);
  font-family:var(--font-display);
  font-size:clamp(1rem,1.9vw,1.75rem);
  font-weight:600;
  line-height:1.2;
  letter-spacing:.22em;
  text-transform:uppercase;
  text-shadow:0 0 13px rgba(255,23,111,.3);
}
.hero-poster-date {
  margin:.15rem 0 1.25rem;
  color:var(--yellow);
  font-family:var(--font-digital);
  font-size:clamp(4.7rem,9.2vw,9.8rem);
  line-height:.88;
  letter-spacing:-.055em;
  text-shadow:0 0 8px rgba(255,201,40,.9),0 0 32px rgba(255,201,40,.44),0 8px 0 rgba(92,72,0,.42);
  white-space:nowrap;
}
.hero-poster-facts {
  display:grid;
  grid-template-columns:minmax(130px,.75fr) minmax(270px,1.7fr) minmax(140px,.85fr);
  gap:.7rem;
  max-width:760px;
  margin:0 auto 1.1rem;
}
.hero-fact {
  min-height:104px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:.65rem 1rem;
  border:2px solid var(--pink);
  border-radius:9px;
  background:rgba(2,2,6,.76);
  box-shadow:0 0 17px rgba(255,23,111,.18),inset 0 0 24px rgba(255,23,111,.05);
}
.hero-fact span { font-family:var(--font-display); font-size:1rem; line-height:1.15; letter-spacing:.12em; text-transform:uppercase; color:#dedbe3; }
.hero-fact strong { font-family:var(--font-display); font-size:clamp(2rem,3.3vw,3.55rem); line-height:1; text-transform:uppercase; }
.hero-fact-time strong { color:var(--cyan); font-family:var(--font-digital); text-shadow:0 0 14px rgba(17,217,244,.5); }
.hero-fact-place strong { color:#f1eff4; letter-spacing:.03em; }
.hero-fact-place span { margin-top:.36rem; color:var(--cyan); }
.hero-fact-price strong { color:var(--pink-soft); text-shadow:0 0 14px rgba(255,23,111,.38); }
.hero-poster-genres {
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:clamp(.6rem,1.3vw,1.2rem);
  margin:0 0 1.05rem;
  padding:.65rem clamp(1.5rem,4vw,4rem) .6rem;
  color:#050507;
  font-family:var(--font-brush);
  font-size:clamp(1.35rem,2.4vw,2.25rem);
  line-height:1;
  text-transform:uppercase;
  transform:rotate(-1deg);
  isolation:isolate;
}
.hero-poster-genres::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:0 -1.8rem;
  background:var(--cyan);
  clip-path:polygon(2% 14%,98% 0,100% 80%,6% 100%,0 72%);
  box-shadow:0 0 28px rgba(17,217,244,.22);
}
.hero-poster-genres i { width:7px; height:7px; border-radius:50%; background:var(--pink); }
.hero-poster-ticket {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1.7rem;
  width:min(100%,315px);
  min-height:62px;
  margin:0 auto;
  border:2px solid var(--pink);
  border-radius:8px;
  background:rgba(5,5,8,.82);
  color:#ff72b0;
  font-family:var(--font-display);
  font-size:1.2rem;
  font-weight:700;
  line-height:1;
  letter-spacing:.12em;
  text-transform:uppercase;
  box-shadow:0 0 22px rgba(255,23,111,.24),inset 0 0 28px rgba(255,23,111,.06);
}
.hero-poster-ticket:hover,.hero-poster-ticket:focus-visible { border-color:var(--cyan); color:#fff; box-shadow:0 0 30px rgba(17,217,244,.26); }
.hero-poster-ticket span { color:var(--pink); font-size:2rem; transition:transform .2s ease; }
.hero-poster-ticket:hover span { transform:translateX(5px); }
.hero-poster-scroll {
  bottom:.6rem;
  gap:.45rem;
  color:#ddd9e1;
  font-family:var(--font-display);
  font-size:.78rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.hero-poster-scroll span { display:block; }
.hero-poster-scroll i { margin-top:.1rem; }
.event-strip-poster { border-top:1px solid rgba(255,23,111,.32); }
.event-strip-poster .strip-item {
  min-height:112px;
  display:flex;
  align-items:center;
  gap:1rem;
  padding:1.35rem clamp(1rem,1.8vw,1.6rem);
  text-align:left;
}
.event-strip-poster .strip-item div { min-width:0; }
.event-strip-poster .strip-icon {
  flex:0 0 auto;
  color:var(--pink-soft);
  font-family:var(--font-display);
  font-size:2.7rem;
  line-height:1;
  text-shadow:0 0 14px rgba(255,23,111,.42);
  width: 44px;
}
.event-strip-poster .strip-icon-cyan { color:var(--cyan); text-shadow:0 0 14px rgba(17,217,244,.42); }
.event-strip-poster .strip-item strong { display:block; font-size:clamp(.96rem,1.15vw,1.18rem); line-height:1.2; letter-spacing:.025em; }
.event-strip-poster .strip-item small { display:block; margin-top:.35rem; color:#95919c; font-size:.85rem; line-height:1.35; letter-spacing:.025em; }

@media (max-width: 991.98px) {
  .hero-poster-stage { padding-top:8.5rem; min-height:100svh; }
  .hero-poster-bg { background-position:center center; }
  .hero-poster-overlay { background:linear-gradient(180deg,rgba(0,0,0,.33),rgba(0,0,0,.12) 45%,rgba(0,0,0,.72)); }
  .hero-poster-facts { grid-template-columns:1fr 1.55fr 1fr; }
  .hero-word { font-size:clamp(4.4rem,14vw,7rem); }
}
@media (max-width: 767.98px) {
  .hero-poster-stage { padding:7.5rem 0 5.5rem; }
  .hero-poster-title { flex-wrap:wrap; row-gap:0; }
  .hero-word { flex-basis:auto; font-size:clamp(3.75rem,18vw,6rem); }
  .hero-amp { font-size:clamp(2.7rem,12vw,4rem); }
  .hero-poster-subtitle { font-size:.9rem; letter-spacing:.12em; }
  .hero-poster-date { font-size:clamp(3rem,14.8vw,5.2rem); letter-spacing:-.065em; }
  .hero-poster-facts { grid-template-columns:1fr 1fr; gap:.55rem; }
  .hero-fact { min-height:91px; }
  .hero-fact-place { grid-column:1 / -1; grid-row:1; }
  .hero-fact-time { grid-column:1; grid-row:2; }
  .hero-fact-price { grid-column:2; grid-row:2; }
  .hero-fact strong { font-size:clamp(1.8rem,9vw,2.65rem); }
  .hero-poster-genres { font-size:clamp(1.1rem,5vw,1.5rem); padding-inline:.7rem; gap:.45rem; }
  .hero-poster-genres::before { inset:0 -.6rem; }
  .hero-poster-scroll span { display:none; }
}
@media (max-width: 575.98px) {
  .hero-poster-bg { background-position:52% center; opacity:.82; }
  .hero-poster-title { gap:.08rem .35rem; }
  .hero-word { font-size:clamp(3.45rem,17vw,5.2rem); }
  .hero-poster-date { margin-top:.55rem; }
  .event-strip-poster .strip-item { min-height:96px; }
}

/* K40 master v12: responsive hero background only */
.hero-poster-bg {
  background-image: url('../img/k40-hero-bg-v12-desktop.webp');
  background-position: center center;
}
.hero-poster-overlay {
  background:
    radial-gradient(circle at 50% 42%, rgba(0,0,0,.02), rgba(0,0,0,.22) 58%, rgba(0,0,0,.52) 100%),
    linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.02) 58%, rgba(0,0,0,.28));
}
@media (max-width: 991.98px) {
  .hero-poster-bg {
    background-image: url('../img/k40-hero-bg-v12-tablet.webp');
    background-position: center top;
  }
  .hero-poster-overlay {
    background:
      radial-gradient(circle at 50% 38%, rgba(0,0,0,.02), rgba(0,0,0,.18) 62%, rgba(0,0,0,.42) 100%),
      linear-gradient(180deg, rgba(0,0,0,.03), rgba(0,0,0,.04) 58%, rgba(0,0,0,.28));
  }
}
@media (max-width: 575.98px) {
  .hero-poster-bg {
    background-image: url('../img/k40-hero-bg-v12-mobile.webp');
    background-position: center top;
    opacity: 1;
  }
  .hero-poster-overlay {
    background:
      radial-gradient(circle at 50% 34%, rgba(0,0,0,.01), rgba(0,0,0,.14) 58%, rgba(0,0,0,.38) 100%),
      linear-gradient(180deg, rgba(0,0,0,.02), rgba(0,0,0,.04) 62%, rgba(0,0,0,.32));
  }
}

/* K40 master v13: translucent desktop header + atmospheric footer */
@media (min-width: 992px) {
  .site-header {
    background: linear-gradient(180deg, rgba(2,2,4,.78) 0%, rgba(2,2,4,.62) 100%);
    border-bottom-color: rgba(255,23,111,.62);
    box-shadow: 0 12px 34px rgba(0,0,0,.28);
    -webkit-backdrop-filter: blur(12px) saturate(115%);
    backdrop-filter: blur(12px) saturate(115%);
  }
}

.site-footer {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #020203;
}

.site-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(180deg, rgba(2,2,3,.90) 0%, rgba(2,2,3,.72) 42%, rgba(2,2,3,.88) 100%),
    url('../img/k40-hero-bg-v12-desktop.webp') center 68% / cover no-repeat;
  opacity: .72;
  transform: scale(1.035);
}

.site-footer::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: -8%;
  right: -8%;
  bottom: -27%;
  height: 72%;
  transform: perspective(520px) rotateX(64deg);
  transform-origin: center bottom;
  background-image:
    linear-gradient(rgba(255,23,111,.22) 1px, transparent 1px),
    linear-gradient(90deg, rgba(17,217,244,.18) 1px, transparent 1px);
  background-size: 72px 48px;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.86) 34%, #000 100%);
  mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.86) 34%, #000 100%);
  opacity: .72;
  pointer-events: none;
}

.site-footer .container-xxl {
  position: relative;
  z-index: 1;
}

.footer-brand .brand-k,
.footer-brand .brand-dot {
  filter: drop-shadow(0 0 16px rgba(255,23,111,.18));
}

.footer-copy,
.footer-bottom {
  text-shadow: 0 2px 12px rgba(0,0,0,.85);
}

@media (max-width: 991.98px) {
  .site-footer::before {
    background:
      linear-gradient(180deg, rgba(2,2,3,.88) 0%, rgba(2,2,3,.68) 46%, rgba(2,2,3,.90) 100%),
      url('../img/k40-hero-bg-v12-tablet.webp') center 70% / cover no-repeat;
    opacity: .76;
  }

  .site-footer::after {
    bottom: -20%;
    height: 62%;
    background-size: 58px 42px;
  }
}

@media (max-width: 575.98px) {
  .site-footer::before {
    background:
      linear-gradient(180deg, rgba(2,2,3,.86) 0%, rgba(2,2,3,.64) 48%, rgba(2,2,3,.92) 100%),
      url('../img/k40-hero-bg-v12-mobile.webp') center 66% / cover no-repeat;
    opacity: .78;
  }

  .site-footer::after {
    left: -25%;
    right: -25%;
    bottom: -14%;
    height: 55%;
    background-size: 48px 36px;
    opacity: .62;
  }
}


/* K40 master v14: clearer translucent header, stronger mobile toggle and active navigation */
@media (min-width: 992px) {
  .site-header {
    background: linear-gradient(180deg, rgba(2,2,4,.54) 0%, rgba(2,2,4,.38) 100%);
    box-shadow: 0 12px 34px rgba(0,0,0,.18);
    -webkit-backdrop-filter: blur(9px) saturate(112%);
    backdrop-filter: blur(9px) saturate(112%);
  }
}

.desktop-nav a.is-active,
.desktop-nav a[aria-current="page"] {
  color: #fff;
  text-shadow: 0 0 16px rgba(255,255,255,.12);
}

.desktop-nav a.is-active::after,
.desktop-nav a[aria-current="page"]::after {
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--pink) 0 48%, var(--cyan) 52% 100%);
  box-shadow: 0 0 10px rgba(255,23,111,.72), 0 0 18px rgba(17,217,244,.48);
}

.desktop-nav a.is-active .nav-number, .desktop-nav a.is-active .nav-label,
.desktop-nav a[aria-current="page"] .nav-number {
  color: var(--yellow);
  text-shadow: 0 0 12px rgba(255,23,111,.58);
}

.mobile-nav a.is-active,
.mobile-nav a[aria-current="page"] {
  color: var(--yellow);
  /*/background: linear-gradient(90deg, rgba(255,23,111,.10), rgba(17,217,244,.05) 64%, transparent);*/
  border-bottom-color: rgba(17,217,244,.42);
  text-shadow: 0 0 18px rgba(255,255,255,.10);
}

.mobile-nav a.is-active span,
.mobile-nav a[aria-current="page"] span {
  color: var(--yellow);
  text-shadow: 0 0 12px rgba(17,217,244,.60);
}

@media (max-width: 991.98px) {
  .menu-toggle {
    position: relative;
    width: 58px;
    height: 58px;
    gap: 6px;
    border: 1px solid rgba(17,217,244,.72);
    background: linear-gradient(145deg, rgba(6,6,10,.88), rgba(13,5,14,.78));
    border-radius: 10px;
    box-shadow:
      0 0 0 1px rgba(255,23,111,.20) inset,
      0 0 18px rgba(17,217,244,.20),
      0 0 26px rgba(255,23,111,.12);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
  }

  .menu-toggle::before,
  .menu-toggle::after {
    content: "";
    position: absolute;
    width: 9px;
    height: 9px;
    pointer-events: none;
  }

  .menu-toggle::before {
    top: 5px;
    left: 5px;
    border-top: 2px solid var(--pink);
    border-left: 2px solid var(--pink);
  }

  .menu-toggle::after {
    right: 5px;
    bottom: 5px;
    border-right: 2px solid var(--cyan);
    border-bottom: 2px solid var(--cyan);
  }

  .menu-toggle span {
    width: 27px;
    height: 3px;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 0 8px rgba(255,255,255,.35);
  }

  .menu-toggle span:first-child {
    background: var(--pink);
    box-shadow: 0 0 10px rgba(255,23,111,.72);
  }

  .menu-toggle span:last-child {
    background: var(--cyan);
    box-shadow: 0 0 10px rgba(17,217,244,.72);
  }

  .menu-toggle:hover,
  .menu-toggle:focus-visible {
    border-color: #fff;
    box-shadow:
      0 0 0 1px rgba(255,23,111,.32) inset,
      0 0 22px rgba(17,217,244,.32),
      0 0 34px rgba(255,23,111,.20);
    transform: translateY(-1px);
    outline: none;
  }
}
