/* ===== Tokens ===== */
:root{
  --ink: #0a0a0f;
  --ink-2: #111118;
  --bone: #f3efe6;
  --ember: #ff5630;
  --magenta: #e0218a;
  --violet: #7b2ff7;
  --electric: #2f74ff;
  --grad-full: linear-gradient(90deg, var(--ember), var(--magenta), var(--violet), var(--electric));
  --font-display: 'Anton', sans-serif;
  --font-script: 'Permanent Marker', cursive;
  --font-body: 'Work Sans', sans-serif;
  --font-mono: 'Space Mono', monospace;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--ink);
  color:var(--bone);
  font-family:var(--font-body);
  line-height:1.5;
  position:relative;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
img,svg{display:block;max-width:100%;}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0, 0, 0, 0);
  white-space:nowrap;
  border:0;
}

/* grain overlay */
.grain{
  position:fixed; inset:0; z-index:999; pointer-events:none; opacity:0.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

.eyebrow{
  font-family:var(--font-mono);
  letter-spacing:.25em;
  text-transform:uppercase;
  font-size:.8rem;
  color:var(--ember);
  text-align:center;
  margin:0 0 1.5rem;
}

/* ===== Topbar ===== */
.topbar{
  display:flex; align-items:center; justify-content:space-between;
  padding:1.1rem 5vw;
  position:relative; z-index:10;
  font-family:var(--font-mono);
  font-size:.85rem;
}
.topbar__logo{letter-spacing:.05em; color:var(--bone); opacity:.85;}
.topbar__nav{display:flex; gap:1.6rem;}
.topbar__nav a{opacity:.75; transition:opacity .2s, color .2s;}
.topbar__nav a:hover{opacity:1; color:var(--ember);}
.topbar__social{display:flex; gap:.9rem; color:var(--ember);}
.topbar__social a{display:flex; opacity:.9; transition:transform .2s;}
.topbar__social a:hover{transform:translateY(-2px);}
@media (max-width: 640px){ .topbar__nav{display:none;} }

/* ===== Hero ===== */
.hero{
  position:relative;
  min-height:90vh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center;
  padding:2rem 5vw 4rem;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute; inset:-20% -10%;
  background:
    radial-gradient(circle at 12% 20%, rgba(224,33,138,.25), transparent 40%),
    radial-gradient(circle at 88% 15%, rgba(47,116,255,.22), transparent 40%),
    radial-gradient(circle at 50% 95%, rgba(255,86,48,.18), transparent 45%);
  filter:blur(40px);
  z-index:0;
}
.hero__brand-wrap{
  position:relative;
  z-index:1;
  width:min(92vw, 760px);
  filter:drop-shadow(0 24px 40px rgba(224,33,138,.25));
  background:transparent;
}
.hero__brand-image{
  width:100%;
  height:auto;
  mix-blend-mode:screen;
}
.hero__cta{margin-top:2.4rem; position:relative; z-index:1;}

@media (max-width: 720px){
  .hero{min-height:auto; padding:1.5rem 4vw 3rem;}
  .hero__brand-wrap{width:94vw;}
  .hero__cta{margin-top:1.4rem; width:100%; max-width:330px;}
}

/* ===== Buttons ===== */
.btn{
  display:inline-block;
  font-family:var(--font-mono);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.9rem;
  padding:.95rem 2rem;
  border-radius:2px;
  border:none;
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
  line-height:1.2;
  text-align:center;
  transition:transform .2s, box-shadow .2s;
}
button.btn{margin:0;}
.btn--primary{
  background:var(--grad-full);
  color:#0a0a0f;
  font-weight:700;
  box-shadow:0 10px 30px -10px rgba(224,33,138,.6);
}
.btn--primary:hover{transform:translateY(-2px); box-shadow:0 14px 34px -8px rgba(224,33,138,.75);}
.btn--ghost{
  border:1px solid rgba(243,239,230,.4);
  color:var(--bone);
}
.btn--ghost:hover{border-color:var(--ember); color:var(--ember);}

/* ===== Info / Timeline ===== */
.info{
  display:grid;
  gap:3rem;
  max-width:1000px;
  margin:0 auto;
  padding:5rem 5vw;
  border-top:1px solid rgba(243,239,230,.12);
  border-bottom:1px solid rgba(243,239,230,.12);
  align-items:start;
}
.info__date{text-align:left;}
.info__day{
  font-family:var(--font-display);
  font-size:clamp(2.8rem, 7vw, 4.5rem);
  margin:0; line-height:1;
  color:var(--bone);
}
.info__year{font-family:var(--font-mono); font-size:1.6rem; color:var(--ember); display:block; margin-top:.3rem;}
.info__weekday{font-family:var(--font-mono); letter-spacing:.2em; opacity:.7; margin:.6rem 0 1.2rem; font-size:.85rem;}
.info__hours{
  display:inline-block;
  font-family:var(--font-mono);
  border:1px solid var(--ember);
  padding:.7rem 1.4rem;
  font-size:.85rem;
  letter-spacing:.05em;
}
.timeline-list{list-style:none; margin:0; padding:0;}
.timeline-list li{
  display:flex; align-items:baseline; gap:1rem;
  padding:.65rem 0;
  border-bottom:1px solid rgba(243,239,230,.1);
  font-family:var(--font-body); font-weight:600;
}
.timeline-list li:last-child{border-bottom:none;}
.timeline-list time{
  font-family:var(--font-mono);
  color:var(--ember);
  min-width:3.6rem;
  font-weight:700;
}
@media (max-width: 720px){ .info{grid-template-columns:1fr; gap:2.2rem;} }

/* ===== About Event ===== */
.about-event{
  max-width:1100px;
  margin:0 auto;
  padding:4.8rem 5vw;
}
.about-event__grid{
  display:grid;
  grid-template-columns:minmax(240px, .75fr) minmax(0, 1.25fr);
  gap:2rem 2.6rem;
  align-items:start;
}
.about-event__intro{
  grid-column:1;
  grid-row:1;
  border-left:2px solid var(--ember);
  padding-left:1rem;
}
.about-event__intro h2{
  margin:0;
  font-family:var(--font-display);
  font-size:clamp(1.7rem, 3.2vw, 2.4rem);
  line-height:1.05;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.about-event__content{
  grid-column:1 / -1;
  grid-row:2;
  border:1px solid rgba(243,239,230,.12);
  background:linear-gradient(165deg, rgba(255,86,48,.06), rgba(123,47,247,.04) 48%, transparent 92%);
  padding:1.4rem 1.4rem 1.2rem;
  border-radius:4px;
  column-count:2;
  column-gap:2.2rem;
  column-rule:1px solid rgba(243,239,230,.12);
}
.about-event__content p{
  margin:0 0 1rem;
  font-size:1rem;
  line-height:1.72;
  opacity:.9;
  break-inside:avoid;
}
.about-event__content p:last-child{margin-bottom:0;}
.about-event__content strong{
  color:var(--bone);
  text-shadow:0 0 14px rgba(224,33,138,.25);
}
@media (max-width: 840px){
  .about-event__grid{grid-template-columns:1fr; gap:1.3rem;}
  .about-event__intro{padding-left:.8rem;}
  .about-event__content{column-count:1; column-gap:0; column-rule:none;}
}

/* ===== Tickets ===== */
.tickets{padding:5rem 5vw; max-width:1000px; margin:0 auto;}
.tickets__grid{display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:start;}
.tickets__price-box{
  border:1px solid var(--electric);
  padding:2rem;
  border-radius:4px;
  background:linear-gradient(160deg, rgba(123,47,247,.06), transparent);
}
.tickets__price-row{display:flex; align-items:center; justify-content:space-between; gap:1rem;}
.tickets__label{font-family:var(--font-mono); font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; opacity:.7; margin:0;}
.tickets__price{font-family:var(--font-display); font-size:2.4rem; color:var(--ember); margin:.2rem 0 0;}
.tickets__price--door{color:var(--bone); opacity:.85; font-size:2rem;}
.tickets__note{font-size:.75rem; opacity:.6; margin:.2rem 0 0;}
.tickets__icon{width:50px; height:32px; flex-shrink:0;}

.ticket-form{
  display:flex; flex-direction:column; gap:1.1rem;
  border:1px solid rgba(243,239,230,.15);
  padding:2rem;
  border-radius:4px;
}
.ticket-form__title{font-family:var(--font-display); font-size:1.3rem; margin:0 0 .4rem; text-transform:uppercase;}
.ticket-form label{display:flex; flex-direction:column; gap:.4rem; font-size:.85rem; font-family:var(--font-mono); letter-spacing:.03em;}
.ticket-form .hint{opacity:.5; font-weight:400; text-transform:none;}
.ticket-form input{
  background:var(--ink-2);
  border:1px solid rgba(243,239,230,.2);
  color:var(--bone);
  padding:.7rem .8rem;
  font-family:var(--font-body);
  font-size:.95rem;
  border-radius:2px;
}
.ticket-form input:focus{outline:2px solid var(--ember); border-color:transparent;}
.qty-stepper{display:flex; align-items:stretch; gap:0;}
.qty-stepper__btn{
  width:44px; height:44px; flex-shrink:0;
  background:var(--ink-2);
  border:1px solid rgba(243,239,230,.2);
  color:var(--bone);
  font-family:var(--font-mono);
  font-size:1.3rem;
  line-height:1;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
.qty-stepper__btn:first-child{border-radius:2px 0 0 2px; border-right:none;}
.qty-stepper__btn:last-child{border-radius:0 2px 2px 0; border-left:none;}
.qty-stepper__btn:active{background:var(--ember); color:#0a0a0f; border-color:var(--ember);}
.qty-stepper__btn:disabled{opacity:.35; cursor:not-allowed;}
.qty-stepper input{
  flex:1; min-width:0; text-align:center;
  border-radius:0;
  -moz-appearance:textfield;
}
.qty-stepper input::-webkit-outer-spin-button,
.qty-stepper input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0;}
.ticket-form__submit{align-self:center; width:auto;}
.ticket-form__total{font-family:var(--font-mono); font-size:1rem; margin:0;}
.ticket-form__total span{color:var(--ember); font-weight:700;}
.ticket-form__legal{font-size:.72rem; opacity:.55; margin:.2rem 0 0;}
.ticket-form__check{
  flex-direction:row !important;
  align-items:flex-start !important;
  gap:.6rem !important;
  font-family:var(--font-body) !important;
  font-size:.8rem !important;
  letter-spacing:normal !important;
  text-transform:none !important;
  opacity:.85;
}
.ticket-form__check input{width:18px; height:18px; flex-shrink:0; margin-top:.1rem; accent-color:var(--ember);}
.ticket-form__check a{color:var(--electric); text-decoration:underline;}
.ticket-form__check a:hover{color:var(--ember);}
.pay-badges{font-size:.72rem; opacity:.7; margin:.1rem 0 0; text-align:center; letter-spacing:.05em; font-family:var(--font-mono);}

.ticket-form .smsticket-ibutton{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  align-self:center;
  min-height:48px;
  padding:.95rem 2rem !important;
  border-radius:2px !important;
  border:none !important;
  background:var(--grad-full) !important;
  color:var(--bone) !important;
  font-family:var(--font-mono) !important;
  font-size:.9rem !important;
  font-weight:700 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  line-height:1.2;
  text-align:center;
  text-decoration:none !important;
  text-shadow:0 1px 0 rgba(0,0,0,.35);
  box-shadow:0 10px 30px -10px rgba(224,33,138,.6);
  transition:transform .2s, box-shadow .2s;
}

.ticket-form .smsticket-ibutton *,
.ticket-form .smsticket-ibutton:visited,
.ticket-form .smsticket-ibutton:link{
  color:var(--bone) !important;
}

.ticket-form .smsticket-ibutton:hover,
.ticket-form .smsticket-ibutton:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 14px 34px -8px rgba(224,33,138,.75);
  color:var(--bone) !important;
}

@media (max-width: 720px){
  .ticket-form .smsticket-ibutton{width:100%;}
}
@media (max-width: 720px){ .tickets__grid{grid-template-columns:1fr;} .tickets__price-row{flex-wrap:wrap;} }

/* ===== Location ===== */
.location{
  padding:5rem 5vw;
  max-width:1100px;
  margin:0 auto;
}
.location__map-card{
  position:relative;
  max-width:1100px;
  margin:0 auto;
  border:1px solid rgba(243,239,230,.2);
  border-radius:6px;
  overflow:hidden;
  background:#0b0b10;
  box-shadow:0 20px 48px -30px rgba(0,0,0,.8);
}
.location__map{
  width:100%;
  height:clamp(320px, 45vw, 520px);
  border:0;
  filter:grayscale(1) contrast(1.08) brightness(.86);
}
.location__overlay{
  position:absolute;
  left:1rem;
  bottom:1rem;
  max-width:min(92%, 430px);
  padding:1rem 1.1rem;
  background:rgba(10,10,15,.78);
  border:1px solid rgba(243,239,230,.25);
  backdrop-filter:blur(4px);
}
.location__overlay h2{
  font-family:var(--font-display);
  text-transform:uppercase;
  letter-spacing:.03em;
  font-size:clamp(1.3rem, 2.2vw, 1.8rem);
  margin:0;
}
.location__overlay p{
  opacity:.84;
  margin:.35rem 0 .9rem;
  font-family:var(--font-mono);
  font-size:.86rem;
  letter-spacing:.05em;
}
.location__btn{
  font-size:.78rem;
  padding:.72rem 1.2rem;
  letter-spacing:.11em;
}
.location__partners{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:1rem 1.5rem;
  margin-top:1.5rem;
}
.location__partner-logo{
  display:block;
  height:35px;
  width:auto;
}
.thanks{
  padding:0 5vw 5rem;
  max-width:1100px;
  margin:0 auto;
  text-align:center;
}

/* ===== Footer ===== */
.footer{
  text-align:center;
  padding:4rem 5vw 3rem;
  border-top:1px solid rgba(243,239,230,.12);
}
.footer__signature{
  display:flex;
  justify-content:center;
  margin:0 0 1rem;
}
.footer__signature-logo{
  width:min(92vw, 420px);
  height:auto;
  filter:drop-shadow(0 0 28px rgba(224,33,138,.22));
  margin:0;
}
.footer__legal-links{font-family:var(--font-mono); font-size:.78rem; opacity:.7; margin:0 0 1.2rem;}
.footer__legal-links a{text-decoration:underline; text-decoration-color:rgba(243,239,230,.3);}
.footer__legal-links a:hover{color:var(--ember);}
.footer__legal-links span{margin:0 .5em; opacity:.5;}
.footer__meta{font-family:var(--font-mono); font-size:.75rem; opacity:.5; margin:0;}

/* Accessibility: focus visibility */
a:focus-visible, button:focus-visible, input:focus-visible{
  outline:2px solid var(--ember); outline-offset:2px;
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .btn{transition:none;}
}

/* ===== Mobile fine-tuning ===== */
@media (max-width: 480px){
  .topbar{padding:1rem 6vw;}
  .hero{padding:1.5rem 6vw 3rem; min-height:auto;}
  .hero__mark{width:min(70vw, 260px);}
  .hero__cta{padding:.85rem 1.5rem; font-size:.8rem;}
  .info{padding:3rem 6vw; gap:2rem;}
  .info__hours{padding:.6rem 1rem; font-size:1rem;}
  .about-event{padding:3rem 6vw;}
  .tickets{padding:3rem 6vw;}
  .tickets__price-box{padding:1.4rem;}
  .tickets__price-row{gap:.8rem;}
  .tickets__price{font-size:1.9rem;}
  .tickets__price--door{font-size:1.6rem;}
  .ticket-form{padding:1.4rem;}
  .location{padding:3rem 6vw;}
  .location__overlay{left:.7rem; right:.7rem; bottom:.7rem; max-width:none;}
  .footer{padding:3rem 6vw 2.2rem;}
}

/* Avoid horizontal overflow on very narrow screens */
.qty-stepper input{font-size:.95rem;}
img, svg, video{max-width:100%; height:auto;}

/* ===== Legal pages (obchodní podmínky / GDPR) ===== */
.legal{
  max-width:740px;
  margin:0 auto;
  padding:4rem 6vw 5rem;
}
.legal__back{
  display:inline-flex; align-items:center; gap:.4rem;
  font-family:var(--font-mono); font-size:.8rem; letter-spacing:.05em;
  color:var(--ember); opacity:.9; margin-bottom:2rem;
}
.legal__back:hover{opacity:1;}
.legal h1{
  font-family:var(--font-display);
  font-size:clamp(1.8rem, 4vw, 2.6rem);
  text-transform:uppercase;
  margin:0 0 .5rem;
}
.legal__updated{font-family:var(--font-mono); font-size:.75rem; opacity:.5; margin:0 0 2.5rem;}
.legal h2{
  font-family:var(--font-display);
  font-size:1.15rem;
  text-transform:uppercase;
  letter-spacing:.02em;
  color:var(--ember);
  margin:2.6rem 0 1rem;
}
.legal h2 .legal__num{opacity:.6; margin-right:.5rem;}
.legal p, .legal li{
  font-size:.95rem; line-height:1.7; opacity:.85; margin:0 0 .9rem;
}
.legal ul, .legal ol{padding-left:1.3rem; margin:0 0 1.2rem;}
.legal strong{color:var(--bone); opacity:1; font-weight:700;}
.legal a{color:var(--electric); text-decoration:underline; text-decoration-color:rgba(47,116,255,.4);}
.legal a:hover{color:var(--ember);}
.legal table{width:100%; border-collapse:collapse; margin:0 0 1.2rem; font-size:.9rem;}
.legal table th, .legal table td{
  text-align:left; padding:.6rem .8rem;
  border-bottom:1px solid rgba(243,239,230,.12);
  opacity:.85;
}
.legal table th{font-family:var(--font-mono); color:var(--ember); opacity:1; font-size:.78rem; text-transform:uppercase; letter-spacing:.05em;}
.legal__box{
  border:1px solid rgba(243,239,230,.15);
  border-left:3px solid var(--ember);
  border-radius:0;
  padding:1rem 1.3rem;
  margin:0 0 1.5rem;
  background:rgba(255,86,48,.04);
}
.legal__box p{margin:0; opacity:.9;}
@media (max-width: 480px){
  .legal{padding:3rem 6vw 3.5rem;}
}

