:root{
  --bg-void:#06050E; --bg-base:#0B0917; --bg-raised:#121020; --bg-sunken:#040309;
  --surface-1:#121020; --surface-2:#1A1728;
  --surface-light:#FBF6F9; --surface-light-2:#F3EAF1;
  --text-1:#F6F2FA; --text-2:#C6BFD6; --text-3:#948CAA;
  --text-on-light-1:#1A0C1E; --text-on-light-2:#5A4560; --text-inv:#0B0917;
  --accent:#FF2E90; --accent-soft:#FF8FC4; --accent-ink:#B00566;
  --cyan:#5FE0FF; --violet:#BC94FF; --gold:#FFC94F;
  --border-hair:rgba(246,242,250,.08); --border-line:rgba(246,242,250,.14);
  --border-strong:rgba(246,242,250,.28); --border-accent:rgba(255,46,144,.45);
  --border-light:rgba(26,12,30,.12);
  --focus:#5FE0FF; --focus-width:2px; --focus-offset:3px;
  --r-1:2px; --r-2:6px; --r-pill:999px;
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px;
  --sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:64px; --sp-9:96px; --sp-10:128px;
  --font-display:"Archivo","Arial Narrow",Impact,sans-serif;
  --font-body:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,Consolas,monospace;
  --fs-mono-xs:11px; --fs-mono:12px; --fs-caption:13px; --fs-body:17px;
  --fs-lead:clamp(19px,.5rem + 1.1vw,23px);
  --fs-h3:clamp(26px,1rem + 1.6vw,38px);
  --fs-h2:clamp(40px,1rem + 4.2vw,84px);
  --fs-h1:clamp(40px,.6rem + 5.4vw,96px);
  --dur-micro:160ms; --dur-standard:240ms; --dur-deliberate:360ms; --dur-entrance:720ms;
  --ease-out:cubic-bezier(.22,1,.36,1); --ease-inout:cubic-bezier(.65,0,.35,1);
  --container:1440px; --header-h:72px;
  --page-margin:max(20px,4.5vw);
  --band-bg:var(--bg-base); --band-text-1:var(--text-1); --band-text-2:var(--text-2);
  --band-text-3:var(--text-3); --band-border:var(--border-hair);
  --band-border-strong:var(--border-line); --band-accent:var(--accent);
}
@media (min-width:1280px){ :root{ --page-margin:max(96px,4.5vw); } }

[data-band="light"]{
  --band-bg:var(--surface-light);
  --band-text-1:var(--text-on-light-1);
  --band-text-2:var(--text-on-light-2);
  --band-text-3:var(--text-on-light-2);
  --band-border:var(--border-light);
  --band-border-strong:rgba(26,12,30,.24);
  --band-accent:var(--accent-ink);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + var(--sp-5)); background:var(--bg-base); }
body,h1,h2,h3,p,figure,ul{ margin:0; }
ul{ padding:0; list-style:none; }
img,picture{ display:block; max-width:100%; }
button{ background:none; border:0; padding:0; cursor:pointer; font:inherit; color:inherit; }
a{ color:inherit; text-decoration:none; }

body{
  background:var(--bg-base); color:var(--text-1);
  font-family:var(--font-body); font-size:var(--fs-body); line-height:1.65;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
h1,h2,h3{ font-family:var(--font-display); font-weight:700; text-wrap:balance; }
h1{ font-size:var(--fs-h1); line-height:.94; letter-spacing:-.03em; font-weight:800; }
h2{ font-size:var(--fs-h2); line-height:1.04; letter-spacing:-.025em; }
h3{ font-size:var(--fs-h3); line-height:1.15; letter-spacing:-.015em; }
::selection{ background:var(--accent); color:var(--text-inv); }

:where(a,button,summary):focus-visible{
  outline:var(--focus-width) solid var(--focus);
  outline-offset:var(--focus-offset);
  border-radius:var(--r-1);
}

.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--page-margin); }
.band{ background:var(--band-bg); color:var(--band-text-1); position:relative; }
.band-quiet{ padding-block:var(--sp-9); }
@media (min-width:1024px){ .band-quiet{ padding-block:var(--sp-10); } }
.band-art{ padding-block:var(--sp-9) 0; }

.skip{
  position:fixed; top:var(--sp-3); left:var(--sp-3); z-index:100;
  transform:translateY(-200%); padding:var(--sp-3) var(--sp-5); min-height:48px;
  display:inline-flex; align-items:center; background:var(--accent); color:var(--text-inv);
  border-radius:var(--r-2); font-weight:600;
}
.skip:focus-visible{ transform:none; }

.progress{ position:fixed; inset:0 0 auto 0; z-index:60; height:2px; pointer-events:none; }
.progress-bar{ height:100%; width:100%; background:var(--accent); transform:scaleX(0); transform-origin:left; }

.header{
  position:fixed; inset:0 0 auto 0; z-index:50; height:var(--header-h);
  display:flex; align-items:center; gap:var(--sp-5);
  padding-inline:var(--page-margin);
  border-bottom:1px solid transparent;
  transition:background-color var(--dur-standard) var(--ease-inout), border-color var(--dur-standard) var(--ease-inout);
}
.header.is-scrolled{
  background:color-mix(in srgb, var(--bg-base) 92%, transparent);
  backdrop-filter:blur(14px);
  border-bottom-color:var(--border-hair);
}
.brand{ display:flex; align-items:center; min-height:48px; margin-right:auto; }
.brand img{ width:148px; height:auto; }
@media (min-width:768px){ .brand img{ width:200px; } }

.nav{ display:none; gap:var(--sp-2); }
@media (min-width:1024px){ .nav{ display:flex; } }
.nav a{
  display:inline-flex; align-items:center; min-height:48px; padding:0 var(--sp-3);
  font-size:var(--fs-caption); font-weight:500; color:var(--text-2);
  transition:color var(--dur-micro) var(--ease-inout);
}
.nav a:hover{ color:var(--text-1); }

.chip{
  display:none; align-items:center; min-height:28px; padding:var(--sp-1) var(--sp-3);
  border-radius:var(--r-pill); border:1px solid var(--border-accent);
  font-family:var(--font-mono); font-size:var(--fs-mono-xs);
  text-transform:uppercase; letter-spacing:.18em; color:var(--accent);
}
@media (min-width:640px){ .chip{ display:inline-flex; } }

.toggle{
  display:inline-flex; flex-direction:column; justify-content:center; align-items:center; gap:6px;
  width:48px; height:48px; border:1px solid var(--border-line); border-radius:var(--r-2);
}
.toggle span{ display:block; width:18px; height:1.5px; background:var(--text-1); }
@media (min-width:1024px){ .toggle{ display:none; } }

.drawer{
  position:fixed; inset:0; z-index:45;
  display:flex; flex-direction:column;
  padding:calc(var(--header-h) + var(--sp-6)) var(--page-margin) var(--sp-8);
  background:var(--bg-void);
}
.drawer[hidden]{ display:none; }
.drawer a{
  display:flex; justify-content:space-between; align-items:center;
  min-height:64px; border-bottom:1px solid var(--border-hair);
  font-family:var(--font-display); font-size:var(--fs-h3); font-variation-settings:"wdth" 108,"wght" 700;
}
.drawer a span{ font-family:var(--font-mono); font-size:var(--fs-mono); color:var(--text-3); }
@media (min-width:1024px){ .drawer{ display:none !important; } }

.rail{ display:none; }
.rail-side{ display:none; }
@media (min-width:1280px){
  .rail{
    display:flex; flex-direction:column; position:fixed; left:var(--sp-5); top:50%;
    transform:translateY(-50%); z-index:40;
    font-family:var(--font-mono); font-size:var(--fs-mono-xs); letter-spacing:.18em;
  }
  .rail a{
    display:flex; align-items:center; gap:var(--sp-2); min-height:44px; color:var(--text-3);
  }
  .rail a i{ width:10px; height:1px; background:currentColor; }
  .rail a.is-active{ color:var(--accent); }
  .rail a.is-active i{ width:22px; }
  .rail-side{
    display:block; position:fixed; right:var(--sp-5); top:50%; z-index:40;
    transform:translateY(-50%) rotate(180deg); writing-mode:vertical-rl;
    font-family:var(--font-mono); font-size:var(--fs-mono-xs); letter-spacing:.28em; color:var(--text-3);
    text-transform:uppercase;
  }
}

.eyebrow{
  display:flex; align-items:center; gap:var(--sp-3);
  font-family:var(--font-mono); font-size:var(--fs-mono);
  text-transform:uppercase; letter-spacing:.16em; color:var(--band-text-3);
}
.eyebrow i{ width:6px; height:6px; border-radius:var(--r-pill); background:var(--accent); flex:none; }

.lead{ font-size:var(--fs-lead); line-height:1.5; color:var(--band-text-2); max-width:46ch; }
.head{ display:flex; flex-direction:column; gap:var(--sp-5); margin-bottom:var(--sp-8); }

.btn{
  display:inline-flex; align-items:center; gap:var(--sp-3);
  min-height:48px; padding:var(--sp-3) var(--sp-5);
  border-radius:var(--r-2); font-weight:600; letter-spacing:-.01em;
  transition:background-color var(--dur-micro) var(--ease-inout), color var(--dur-micro) var(--ease-inout);
}
.btn span{ transition:transform var(--dur-standard) var(--ease-out); }
.primary{ background:var(--accent); color:var(--text-inv); border:1px solid var(--accent); }
.primary:hover{ background:var(--accent-soft); }
.primary:hover span{ transform:translateX(4px); }
.ghost{ background:transparent; color:var(--text-1); border:1px solid var(--border-strong); }
.ghost:hover{ border-color:var(--text-1); }
.header-cta{ display:none; }
@media (min-width:1024px){ .header-cta{ display:inline-flex; } }
.link{ padding:var(--sp-2) 0; min-height:44px; box-shadow:inset 0 -1px 0 0 var(--cyan); border-radius:0; }
.link:hover{ color:var(--cyan); }
.link:hover span{ transform:translateX(4px); }

.hero{
  position:relative; min-height:100svh; display:flex; align-items:flex-end;
  padding-top:calc(var(--header-h) + var(--sp-8)); padding-bottom:var(--sp-8);
  overflow:hidden; isolation:isolate;
}
.hero-media{ position:absolute; inset:0; z-index:-2; }
.hero-media picture, .hero-media img{ width:100%; height:100%; object-fit:cover; }
@media (min-width:768px){ .hero-media img{ height:114%; } }
.hero-scrim{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(to top, var(--bg-base) 0%, color-mix(in srgb, var(--bg-base) 92%, transparent) 22%, color-mix(in srgb, var(--bg-base) 62%, transparent) 46%, transparent 78%),
    linear-gradient(105deg, color-mix(in srgb, var(--bg-void) 86%, transparent) 0%, color-mix(in srgb, var(--bg-void) 52%, transparent) 46%, transparent 100%);
}
.hero-inner{ display:flex; flex-direction:column; gap:var(--sp-5); width:100%; }
.hero .line{ display:block; }
.hero .line span{ display:block; animation:rise var(--dur-entrance) var(--ease-out) both; }
.hero .line:nth-child(2) span{ animation-delay:80ms; }
.accent{ color:var(--accent); }
.actions{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-4) var(--sp-6); }
.meta{
  display:flex; flex-wrap:wrap; gap:var(--sp-3) var(--sp-5);
  padding-top:var(--sp-5); max-width:72ch; border-top:1px solid var(--border-hair);
  font-family:var(--font-mono); font-size:var(--fs-mono); text-transform:uppercase; letter-spacing:.16em; color:var(--text-3);
}
.meta li{ display:flex; align-items:center; gap:var(--sp-3); }
.meta li + li::before{ content:""; width:1px; height:12px; background:var(--border-line); }

@keyframes rise{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }

.mode-slider{ position:relative; }
.mode-viewport{ overflow:hidden; border-radius:var(--r-2); background:var(--bg-void); }
.mode-track{ display:flex; transition:transform var(--dur-deliberate) var(--ease-out); }
.mode-slide{
  position:relative; flex:0 0 100%; min-height:min(68vh,640px);
}
.mode-slide img{ width:100%; height:min(68vh,640px); object-fit:cover; display:block; }
.mode-slide::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to top, var(--bg-void) 0%, color-mix(in srgb, var(--bg-void) 70%, transparent) 38%, transparent 68%);
}
.mode-copy{
  position:absolute; inset:auto 0 0 0; z-index:1;
  padding:var(--sp-6) var(--sp-5);
  max-width:46ch;
}
@media (min-width:768px){ .mode-copy{ padding:var(--sp-7) var(--sp-6); } }
.mode-kicker{
  display:flex; align-items:center; gap:var(--sp-3);
  font-family:var(--font-mono); font-size:var(--fs-mono);
  text-transform:uppercase; letter-spacing:.16em; color:var(--text-3);
}
.mode-kicker span{ color:var(--accent); }
.mode-copy h3{ margin:var(--sp-3) 0 var(--sp-2); }
.mode-copy p:last-child{ color:var(--text-2); }
.mode-nav{
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4);
  margin-top:var(--sp-4);
}
.mode-btn{
  width:48px; height:48px; border:1px solid var(--border-line); border-radius:var(--r-2);
  color:var(--text-1); font-size:20px;
  transition:border-color var(--dur-micro) var(--ease-inout), background-color var(--dur-micro) var(--ease-inout);
}
.mode-btn:hover{ border-color:var(--text-1); background:color-mix(in srgb, var(--text-1) 6%, transparent); }
.mode-dots{ display:flex; flex-wrap:wrap; justify-content:center; gap:6px; }
.mode-dot{
  width:28px; height:28px; padding:0; border:0; background:transparent;
  display:inline-flex; align-items:center; justify-content:center;
}
.mode-dot i{ width:8px; height:8px; border-radius:var(--r-pill); background:var(--border-strong); }
.mode-dot.is-on i{ background:var(--accent); width:18px; }

.player{ display:grid; gap:var(--sp-5); }
@media (min-width:960px){ .player{ grid-template-columns:1.6fr .7fr; align-items:stretch; } }
.player-stage{ background:var(--bg-void); border-radius:var(--r-2); overflow:hidden; }
.player-stage video{ width:100%; aspect-ratio:16/9; display:block; background:#000; }
.player-list{ display:flex; flex-direction:column; gap:var(--sp-3); }
.player-item{
  display:grid; grid-template-columns:96px 1fr; gap:var(--sp-3); align-items:center;
  min-height:64px; padding:var(--sp-2); text-align:left;
  border:1px solid var(--border-hair); border-radius:var(--r-2); background:var(--surface-1);
  color:var(--text-2);
  transition:border-color var(--dur-micro) var(--ease-inout);
}
.player-item img{ width:96px; height:54px; object-fit:cover; }
.player-item span{
  font-family:var(--font-mono); font-size:var(--fs-mono);
  text-transform:uppercase; letter-spacing:.14em;
}
.player-item b{ color:var(--accent); margin-right:var(--sp-2); font-weight:400; }
.player-item:hover, .player-item.is-on{ border-color:var(--accent); color:var(--text-1); }

.palcos{ overflow:hidden; }
.scene-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-4);
}
@media (min-width:900px){ .scene-grid{ grid-template-columns:repeat(4,1fr); gap:var(--sp-5); } }
.scene-grid.rooms{ margin-top:var(--sp-4); }
@media (min-width:900px){ .scene-grid.rooms{ grid-template-columns:repeat(4,1fr); } }
.scene-grid figure{ margin:0; }
.scene-grid img{
  width:100%; aspect-ratio:16/9; object-fit:cover;
  background:var(--surface-1);
  transition:transform 720ms var(--ease-out);
}
.scene-grid figure:hover img{ transform:scale(1.03); }
.scene-grid figcaption{
  display:flex; gap:var(--sp-2); margin-top:var(--sp-2);
  font-family:var(--font-mono); font-size:var(--fs-mono-xs);
  text-transform:uppercase; letter-spacing:.14em; color:var(--text-3);
}
.scene-grid figcaption span{ color:var(--accent); }
.subhead{
  margin:var(--sp-9) 0 var(--sp-5);
  font-size:clamp(22px,1rem + 1.2vw,32px);
}
.wall-wrap{ margin-top:var(--sp-9); padding-top:var(--sp-6); }
.wall-wrap .eyebrow{ margin-bottom:var(--sp-5); }
.marquee{ overflow:hidden; width:100%; padding-bottom:var(--sp-8); }
.marquee-track{ display:flex; width:max-content; gap:var(--sp-4); animation:marquee 56s linear infinite; }
.marquee-track img{ width:min(78vw,520px); aspect-ratio:16/9; object-fit:cover; }
@keyframes marquee{ to{ transform:translate3d(-50%,0,0); } }

.world-grid{ display:grid; grid-template-columns:1fr; gap:var(--sp-6); }
@media (min-width:900px){ .world-grid{ grid-template-columns:1fr 1fr; } }
.plate{ background:var(--surface-light-2); }
[data-band="light"] .plate{ color:var(--text-on-light-1); }
.plate img{ width:100%; aspect-ratio:16/10; object-fit:cover; }
@media (min-width:900px){ .plate-wide{ grid-column:1 / -1; } }
.plate-wide img{ aspect-ratio:16/9; object-fit:contain; background:#efe8f4; }
.plate div{ padding:var(--sp-5); }
.plate p{ margin-top:var(--sp-3); color:var(--band-text-2); }
.pets{ display:flex; gap:var(--sp-3); margin-top:var(--sp-4); }
.pets img{ width:72px; height:72px; object-fit:cover; border-radius:var(--r-2); }

.status-band{
  display:grid; grid-template-columns:1fr; background:var(--bg-void);
  min-height:min(80vh,720px);
}
@media (min-width:960px){ .status-band{ grid-template-columns:1.2fr .8fr; } }
.status-inner{ display:flex; flex-direction:column; justify-content:center; gap:var(--sp-5); padding-block:var(--sp-9); }
.status-list{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-5); margin-top:var(--sp-4); }
.status-list li{
  font-family:var(--font-mono); font-size:var(--fs-mono); text-transform:uppercase; letter-spacing:.16em;
  border-top:1px solid var(--border-hair); padding-top:var(--sp-3);
}
.status-list span{ display:block; color:var(--text-3); margin-bottom:var(--sp-2); }
.status-art{ min-height:320px; }
.status-art img{ width:100%; height:100%; object-fit:cover; }

.faq-wrap{ display:grid; gap:var(--sp-8); }
@media (min-width:960px){ .faq-wrap{ grid-template-columns:1fr 1.2fr; align-items:start; } }
.faq details{ border-bottom:1px solid var(--border-hair); }
.faq summary{
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4);
  min-height:48px; padding:var(--sp-5) 0; cursor:pointer; list-style:none;
  font-family:var(--font-display); font-size:clamp(22px,1rem + 1vw,32px);
  font-variation-settings:"wdth" 108,"wght" 700;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; color:var(--accent); font-weight:400; }
.faq details[open] summary::after{ content:"–"; }
.faq summary:hover{ color:var(--accent); }
.faq p{ padding:0 0 var(--sp-6); max-width:62ch; color:var(--text-2); }
.faq a{ color:var(--cyan); box-shadow:inset 0 -1px 0 0 var(--cyan); }

.footer{
  background:var(--bg-sunken); color:var(--text-2);
  padding-block:var(--sp-8) var(--sp-7); border-top:1px solid var(--border-hair);
}
.footer-grid{ display:grid; gap:var(--sp-7); padding-bottom:var(--sp-8); }
@media (min-width:768px){ .footer-grid{ grid-template-columns:1.4fr 1fr 1fr; } }
.footer img{ width:160px; height:auto; }
.footer p, .footer a{ display:block; margin-top:var(--sp-3); color:var(--text-3); font-size:var(--fs-caption); max-width:34ch; }
.footer a{ min-height:44px; display:inline-flex; align-items:center; }
.footer a:hover{ color:var(--accent-soft); }
.footer h2{
  font-family:var(--font-mono); font-size:var(--fs-mono); text-transform:uppercase;
  letter-spacing:.16em; color:var(--text-3); font-variation-settings:normal;
}
.footer-base{
  display:flex; flex-wrap:wrap; gap:var(--sp-3) var(--sp-6);
  align-items:center; justify-content:space-between;
  padding-top:var(--sp-6); border-top:1px solid var(--border-hair);
}
.footer-base div{ display:flex; flex-direction:column; gap:var(--sp-2);
  font-family:var(--font-mono); font-size:var(--fs-mono-xs); text-transform:uppercase; letter-spacing:.14em; color:var(--text-3);
}

.reveal{ opacity:0; transform:translateY(18px); animation:none; }
.reveal.is-in{ opacity:1; transform:none; transition:opacity var(--dur-entrance) var(--ease-out), transform var(--dur-entrance) var(--ease-out); }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal{ opacity:1; transform:none; }
  .marquee-track{ animation:none; }
  .mode-track{ transition:none; }
}
