@font-face{font-family:Elsie;src:url(/fonts/elsie-400-ext.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC}
@font-face{font-family:Elsie;src:url(/fonts/elsie-400.woff2) format("woff2");font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Elsie;src:url(/fonts/elsie-900-ext.woff2) format("woff2");font-weight:700 900;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC}
@font-face{font-family:Elsie;src:url(/fonts/elsie-900.woff2) format("woff2");font-weight:700 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Schibsted Grotesk";src:url(/fonts/schibsted-ext.woff2) format("woff2");font-weight:400 700;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC}
@font-face{font-family:"Schibsted Grotesk";src:url(/fonts/schibsted-latin.woff2) format("woff2");font-weight:400 700;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Allura;src:url(/fonts/allura-latin.woff2) format("woff2");font-weight:400;font-display:swap}

:root{
  --night:#100314;--plum:#2a0a28;--velvet:#4a0d2a;--coral:#ff6a4d;--coral-deep:#e24a32;
  --gold:#f0c65c;--gold-deep:#c9a13a;--azure:#3d8bff;--ivory:#fff6ea;--mist:#e8d7c4;
  --line:rgba(240,198,92,.35);
  --sans:"Schibsted Grotesk",system-ui,sans-serif;
  --display:Elsie,Georgia,serif;
  --script:Allura,cursive;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--night);color:var(--ivory);scroll-behavior:smooth}
body{
  font-family:var(--sans);font-size:17px;line-height:1.65;min-height:100vh;
  background:
    radial-gradient(ellipse 80% 50% at 50% -10%,rgba(80,20,50,.45),transparent 55%),
    radial-gradient(circle at 12% 30%,rgba(61,139,255,.07),transparent 28%),
    radial-gradient(circle at 88% 18%,rgba(240,198,92,.08),transparent 24%),
    var(--night);
}
img{max-width:100%;display:block;height:auto}
a{color:var(--gold);text-decoration:none}
a:hover{color:#ffe9a8}
.wrap{width:min(1220px,calc(100% - 32px));margin-inline:auto}
.skip{position:absolute;left:-999px;top:0;background:#000;color:#fff;padding:.5rem 1rem;z-index:80}
.skip:focus{left:8px;top:8px}

/* ===== mast / velvet header ===== */
.mast{
  position:relative;z-index:20;
  background:
    linear-gradient(#3a0c22,#1a0610 55%,#12040c);
  border-bottom:2px solid var(--gold);
  box-shadow:0 8px 28px rgba(0,0,0,.45);
}
.mast::before{
  content:"";position:absolute;left:0;right:0;top:0;height:22px;pointer-events:none;
  background:
    radial-gradient(ellipse 70px 22px at 10% 0,#6b1633 0 62%,transparent 63%),
    radial-gradient(ellipse 70px 22px at 30% 0,#541028 0 62%,transparent 63%),
    radial-gradient(ellipse 70px 22px at 50% 0,#6b1633 0 62%,transparent 63%),
    radial-gradient(ellipse 70px 22px at 70% 0,#541028 0 62%,transparent 63%),
    radial-gradient(ellipse 70px 22px at 90% 0,#6b1633 0 62%,transparent 63%);
  opacity:.95;
}
.mast-inner{display:flex;align-items:center;gap:14px;padding:22px 0 10px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;color:var(--gold);flex:0 0 auto}
.brand svg{width:42px;height:42px;flex:0 0 auto}
.brand-name{font-family:var(--display);font-weight:900;font-size:2.05rem;letter-spacing:.01em;line-height:1;color:var(--gold);text-shadow:0 0 18px rgba(240,198,92,.35)}
.nav-tickets{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:1 1 auto;justify-content:center}
.ticket{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:34px;padding:.28rem 1rem;font-size:.82rem;font-weight:700;letter-spacing:.02em;
  color:#1a080c;background:linear-gradient(#f4d275,#d4a63a);
  border:0;border-radius:999px;box-shadow:0 1px 0 #fff6, inset 0 0 0 1px #0002;
}
.ticket:hover{color:#1a080c;filter:brightness(1.08)}
.ticket:not(.is-on){
  background:transparent;color:var(--gold);
  box-shadow:none;border:1.5px solid rgba(240,198,92,.75);
}
.ticket:not(.is-on):hover{background:rgba(240,198,92,.12);color:#ffe9a8}
.btn-coral,.btn-gold,.btn-azure{
  display:inline-flex;align-items:center;justify-content:center;gap:.35rem;
  font-family:var(--sans);font-weight:700;border-radius:999px;cursor:pointer;
  border:0;line-height:1;text-align:center;white-space:nowrap;
}
.btn-coral{
  background:linear-gradient(#ff7d62,#e24a32);color:#fff;
  padding:.7rem 1.25rem;box-shadow:0 0 20px rgba(255,106,77,.45);
}
.btn-coral:hover{color:#fff;filter:brightness(1.07)}
.btn-azure{
  background:transparent;color:#dce8ff;border:2px solid var(--azure);
  padding:.64rem 1.2rem;
}
.btn-azure:hover{background:rgba(61,139,255,.15);color:#fff}
.btn-gold{
  background:linear-gradient(#f4d275,#d4a63a);color:#1a080c;
  padding:.7rem 1.2rem;box-shadow:0 0 16px rgba(240,198,92,.3);
}
.btn-gold:hover{color:#1a080c;filter:brightness(1.06)}
.mast-cta{margin-left:auto}
.nav-toggle{
  display:none;margin-left:auto;background:transparent;border:1.5px solid var(--gold);
  color:var(--gold);border-radius:10px;padding:.35rem .7rem;font-weight:700;font-family:var(--sans);
}

/* ticker */
.ticker{
  overflow:hidden;border-top:1px solid var(--line);
  background:linear-gradient(#1a0810,#0e040c);
  color:var(--gold);font-weight:700;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
}
.ticker-track{display:flex;gap:0;width:max-content;animation:marquee 32s linear infinite}
.ticker-track span{padding:.38rem 1.6rem;white-space:nowrap}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ===== hero ===== */
.hero{padding:18px 0 6px}
.hero-grid{
  display:grid;grid-template-columns:240px minmax(0,1fr) minmax(0,1.2fr);
  gap:18px;align-items:center;
}
.stand{
  background:linear-gradient(#1c0a14,#12060c);
  border:2px solid var(--gold);
  border-radius:18px 18px 22px 22px;
  padding:12px 14px 12px;
  box-shadow:0 10px 28px rgba(0,0,0,.4), inset 0 0 0 1px #0006;
  position:relative;
}
.stand::before{
  content:"";position:absolute;left:18%;right:18%;top:-10px;height:10px;
  background:linear-gradient(#f0c65c,#c9a13a);border-radius:4px 4px 0 0;
}
.stand-head{display:flex;align-items:center;gap:8px;color:var(--gold);font-family:var(--display);font-size:1.15rem;font-weight:700;margin-bottom:12px}
.stand-head svg{width:22px;height:22px}
.stand dl{display:grid;gap:2px;font-size:.78rem}
.stand .row{display:flex;justify-content:space-between;gap:8px;align-items:baseline;padding:5px 0;border-bottom:1px dashed var(--line)}
.stand .row:last-child{border-bottom:0}
.stand dt{color:var(--mist);display:flex;align-items:center;gap:6px}
.stand dd{color:var(--gold);font-weight:700;text-align:right}
.stand dd.warn{color:#ffb199;font-weight:600}
.stand-plats{margin-top:8px;border-top:1px solid var(--line);padding-top:8px}
.stand-plats h3{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.stand-plats li{list-style:none;display:flex;justify-content:space-between;gap:8px;font-size:.72rem;padding:2px 0;color:var(--mist)}
.stand-plats b{color:var(--ivory);font-weight:600}

.hero-copy h1{
  font-family:var(--display);font-weight:900;font-size:clamp(1.8rem,3.1vw,2.75rem);
  line-height:1.18;color:var(--ivory);text-shadow:0 2px 18px #000a;margin-bottom:12px;
}
.hero-copy p.lede{color:var(--mist);font-size:.98rem;max-width:36ch;margin-bottom:14px}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px}

.proscenium{
  position:relative;border-radius:18px;overflow:hidden;
  box-shadow:0 16px 40px rgba(0,0,0,.5);
  border:2px solid rgba(240,198,92,.55);
}
.proscenium img{width:100%;aspect-ratio:16/10.2;object-fit:cover;object-position:center 42%}

/* tiles / opera boxes */
.hall{padding:4px 0 6px}
.box-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.box{
  position:relative;display:block;color:var(--ivory);
  background:#0a0308;border:2px solid var(--gold);border-radius:14px;overflow:hidden;
  box-shadow:0 8px 20px rgba(0,0,0,.35);
  transition:transform .18s ease, box-shadow .18s ease;
}
.box:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(240,198,92,.2);color:var(--ivory)}
.box img{width:100%;aspect-ratio:16/9.2;object-fit:cover}
.box .name{
  display:block;padding:.4rem .6rem .5rem;font-family:var(--display);font-size:.98rem;
  font-weight:700;color:var(--ivory);text-align:center;background:linear-gradient(#1a0a12,#100308);
  border-top:1px solid var(--line);
}
.badge{
  position:absolute;top:10px;right:10px;z-index:2;
  font-size:.68rem;font-weight:800;letter-spacing:.06em;
  padding:.22rem .5rem;border-radius:999px;color:#fff;
}
.badge.hot{background:var(--coral);box-shadow:0 0 10px rgba(255,106,77,.5)}
.badge.novo{background:var(--azure);box-shadow:0 0 10px rgba(61,139,255,.5)}

/* promo rail */
.intermission{padding:18px 0 8px}
.promo-rail{display:grid;grid-template-columns:1.2fr 1.2fr .9fr;gap:14px}
.promo{
  position:relative;border:2px solid var(--gold);border-radius:14px;overflow:hidden;min-height:132px;
  display:flex;align-items:flex-end;color:var(--ivory);
}
.promo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.promo .cap{position:relative;z-index:1;padding:16px 18px;background:linear-gradient(transparent,rgba(8,2,10,.88) 55%);width:100%}
.promo h2{font-family:var(--display);font-size:1.2rem;color:var(--gold);margin-bottom:4px}
.promo p{font-size:.88rem;color:var(--mist)}
.facts{
  border:2px solid var(--gold);border-radius:14px;padding:14px 16px;
  display:flex;flex-direction:column;justify-content:center;gap:8px;
  background:linear-gradient(#1a0a12,#0e040c);
  font-size:.82rem;font-weight:700;letter-spacing:.04em;color:var(--ivory);
}
.facts span{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}
.facts span:last-child{border-bottom:0}
.facts a{color:var(--gold)}

/* editorial blocks */
.band{padding:28px 0}
.band h2{font-family:var(--display);font-size:clamp(1.5rem,2.4vw,2rem);color:var(--gold);margin-bottom:10px}
.band .lead{color:var(--mist);margin-bottom:16px;max-width:70ch}
.article{
  width:min(820px,100%);
}
.article h1,.page-hero h1{
  font-family:var(--display);font-weight:900;font-size:clamp(1.8rem,3vw,2.6rem);
  line-height:1.2;margin:12px 0 14px;color:var(--ivory);
}
.article h2{font-family:var(--display);font-size:1.45rem;color:var(--gold);margin:1.4rem 0 .5rem}
.article h3{font-family:var(--display);font-size:1.15rem;color:#ffe9a8;margin:1.1rem 0 .4rem}
.article p,.article li{margin-bottom:.85rem;color:var(--ivory)}
.article ul,.article ol{padding-left:1.2rem;margin-bottom:1rem}
.article figure{margin:1.2rem 0 1.4rem}
.article figcaption{font-size:.85rem;color:var(--mist);margin-top:.4rem}
.page-hero{padding:22px 0 8px}
.page-hero .crumb{font-size:.82rem;color:var(--mist);margin-bottom:8px}
.page-hero .crumb a{color:var(--gold)}
.cover{border-radius:16px;overflow:hidden;border:2px solid rgba(240,198,92,.45);margin:8px 0 18px;box-shadow:0 10px 28px #0006}
.cover img{width:100%;aspect-ratio:1200/630;object-fit:cover}
.cta-row{display:flex;flex-wrap:wrap;gap:10px;margin:1.2rem 0 1.6rem}
.note{font-size:.85rem;color:var(--mist)}
.verificar{color:#ffb199;font-weight:600}

/* reviews hub: bilheteria camarotes */
.bilheteria{padding:8px 0 40px}
.box-office{
  display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0 18px;
}
.box-office input{
  flex:1 1 240px;min-height:44px;border-radius:999px;border:1.5px solid var(--gold);
  background:#12060c;color:var(--ivory);padding:.5rem 1rem;font:inherit;
}
.cam-tabs{display:flex;flex-wrap:wrap;gap:8px}
.cam-tabs button{
  background:transparent;border:1.5px solid var(--line);color:var(--gold);
  border-radius:999px;padding:.4rem .9rem;font:inherit;font-weight:700;cursor:pointer;
}
.cam-tabs button.is-on,.cam-tabs button:hover{background:rgba(240,198,92,.15);border-color:var(--gold)}
.gallery{margin-top:8px}
.gallery h2{font-family:var(--display);color:var(--gold);font-size:1.4rem;margin:18px 0 10px}
.stubs{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.stub{
  background:linear-gradient(#1a0a12,#100308);
  border:1.5px solid var(--gold);border-radius:14px;padding:12px 12px 14px;
  position:relative;
}
.stub.is-hid{display:none}
.stub-top{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.stub .monogram,.stub img.logo{
  width:40px;height:40px;border-radius:8px;object-fit:cover;flex:0 0 auto;
  background:#2a1018;border:1px solid var(--line);
}
.stub .monogram{display:grid;place-items:center;font-family:var(--display);color:var(--gold);font-weight:700}
.stub h3{font-size:1rem;line-height:1.25}
.stub h3 a{color:var(--ivory)}
.stub p{font-size:.8rem;color:var(--mist);margin:.25rem 0 .6rem}
.stub .actions{display:flex;flex-direction:column;gap:6px}
.stub .actions a{font-size:.8rem;padding:.5rem .7rem;border-radius:999px;text-align:center}
.stub .visit{border:1px solid var(--azure);color:#dce8ff}
.more-btn{
  margin:18px auto 0;display:block;background:transparent;color:var(--gold);
  border:1.5px solid var(--gold);border-radius:999px;padding:.55rem 1.2rem;font:inherit;font-weight:700;cursor:pointer;
}
.featured{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:12px 0 22px}
.featured a.card{
  display:block;border:2px solid var(--gold);border-radius:14px;overflow:hidden;color:var(--ivory);background:#100308;
}
.featured a.card img{width:100%;aspect-ratio:1200/630;object-fit:cover}
.featured a.card span{display:block;padding:.7rem .9rem;font-family:var(--display);font-size:1.05rem}

/* footer */
.foot{
  margin-top:28px;border-top:2px solid var(--gold);
  background:linear-gradient(#1a0a12,#0a0308);
  padding:28px 0 36px;font-size:.9rem;color:var(--mist);
}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:22px}
.foot h2{font-family:var(--display);color:var(--gold);font-size:1.15rem;margin-bottom:8px}
.foot ul{list-style:none}
.foot li{margin:.3rem 0}
.foot .legal{margin-top:18px;font-size:.8rem;border-top:1px solid var(--line);padding-top:12px}

/* 18+ chip */
.age{display:inline-grid;place-items:center;width:28px;height:28px;border:1.5px solid var(--gold);border-radius:6px;font-weight:800;font-size:.7rem;color:var(--gold)}

@media (max-width: 980px){
  .hero-grid{grid-template-columns:1fr; }
  .stand{order:3;max-width:420px}
  .hero-copy{order:1}
  .proscenium{order:2}
  .box-grid{grid-template-columns:repeat(2,1fr)}
  .promo-rail{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
}
@media (max-width: 720px){
  .nav-toggle{display:inline-flex}
  .nav-tickets{display:none;width:100%;justify-content:flex-start}
  .mast.is-open .nav-tickets{display:flex}
  .mast-cta{order:0}
  .brand-name{font-size:1.7rem}
  .hero-copy h1{font-size:1.7rem}
}
