/* VR Cantina site rules. Tokens live in tokens.css. */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--night);color:var(--text);font-family:var(--font-body);font-size:17px;line-height:1.65;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--sign)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 16px}
@media (min-width:720px){.wrap{padding:0 32px}}

/* top bar */
.topbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--night) 88%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--night-3)}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;flex-wrap:wrap}
.brand{font-family:var(--font-display);font-size:22px;letter-spacing:.02em;color:var(--cream);text-decoration:none;white-space:nowrap}
.brand b{color:var(--sign);font-weight:400}
.topbar nav{display:flex;gap:4px;flex-wrap:wrap}
.topbar nav a{font-weight:800;font-size:14px;color:var(--muted);text-decoration:none;padding:6px 10px;border-radius:999px}
.topbar nav a:hover{color:var(--cream)}
.topbar nav a[aria-current]{color:var(--night);background:var(--sign)}

/* trim: the building's maroon over green, used as a section rule */
.trim{height:6px;background:linear-gradient(var(--maroon) 0 50%,var(--green) 50% 100%);border:0;margin:0}

/* hero */
.hero{position:relative;min-height:min(88vh,760px);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.hero .bg{position:absolute;inset:0;z-index:-1}
.hero .bg img{width:100%;height:100%;object-fit:cover;object-position:62% 40%}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(7,10,26,.15) 0%,rgba(7,10,26,.25) 45%,var(--night) 100%),linear-gradient(90deg,rgba(7,10,26,.85) 0%,rgba(7,10,26,.2) 60%,transparent 100%)}
.hero .inner{padding-top:120px;padding-bottom:56px;width:100%}
.eyebrow{font-weight:800;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--sun-2);margin:0 0 12px}
.hero h1{font-family:var(--font-display);font-weight:400;font-size:clamp(44px,8vw,96px);line-height:.98;margin:0;color:var(--cream);max-width:12ch;text-wrap:balance}
.hero h1 span{color:var(--sign)}
.hero .lede{font-size:clamp(17px,2vw,20px);max-width:44ch;margin:20px 0 0;color:var(--text)}
.badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.badge{font-weight:800;font-size:13px;padding:6px 12px;border-radius:999px;border:1px solid var(--night-3);background:rgba(13,18,38,.7);color:var(--text)}
.badge.warm{border-color:var(--sun);color:var(--sun-2)}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn{display:inline-block;font-family:var(--font-display);font-size:18px;letter-spacing:.02em;padding:12px 22px;border-radius:999px;text-decoration:none;color:var(--night);background:var(--sign);border:2px solid var(--sign)}
.btn:hover{background:var(--cream);border-color:var(--cream)}
.btn.ghost{background:transparent;color:var(--cream);border-color:var(--night-3)}
.btn.ghost:hover{border-color:var(--cream)}

/* sections */
section.block{padding:72px 0}
.kicker{font-weight:800;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--band);margin:0 0 10px}
h2{font-family:var(--font-display);font-weight:400;font-size:clamp(30px,4.4vw,46px);line-height:1.08;color:var(--cream);margin:0 0 16px;text-wrap:balance}
h3{font-family:var(--font-display);font-weight:400;font-size:24px;line-height:1.15;color:var(--sign);margin:0 0 8px}
.intro{max-width:64ch;color:var(--muted);margin:0 0 36px}
.intro b,p b{color:var(--text)}

/* arch-topped stills, like the building's own arcade */
.arch{border-radius:999px 999px 6px 6px / 46% 46% 6px 6px;overflow:hidden;background:var(--night-2);border:3px solid var(--cream);box-shadow:0 0 0 6px var(--night),0 0 0 7px var(--night-3)}
.arch img{width:100%;aspect-ratio:4/5;object-fit:cover}
.gallery{display:grid;gap:40px 28px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.gallery figure{margin:0}
.gallery figcaption{margin-top:18px}
.gallery figcaption p{margin:0;color:var(--muted);font-size:15.5px}

.wide-shot{margin:0;border-radius:8px;overflow:hidden;border:1px solid var(--night-3)}
.wide-shot img{width:100%;aspect-ratio:16/9;object-fit:cover}
.wide-shot figcaption{padding:12px 16px;font-size:14.5px;color:var(--muted);background:var(--night-1)}

/* features */
.features{display:grid;gap:0;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));border-top:1px solid var(--night-3)}
.feature{padding:28px 24px 28px 0;border-bottom:1px solid var(--night-3)}
@media (min-width:720px){.feature{padding:32px 32px 32px 0}}
.feature p{margin:0;color:var(--muted)}
.feature .tag{display:inline-block;font-weight:800;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--sun-2);margin-bottom:8px}

/* status row */
.status{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.stat{border-left:3px solid var(--maroon);padding:4px 0 4px 16px}
.stat .k{font-weight:800;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.stat .v{font-family:var(--font-display);font-size:28px;color:var(--cream);line-height:1.15;margin:4px 0}
.stat .v.yes{color:var(--band)} .stat .v.part{color:var(--sign)} .stat .v.no{color:var(--sun-2)}
.stat .n{font-size:14.5px;color:var(--muted)}

/* split: text + image */
.split{display:grid;gap:40px;align-items:center}
@media (min-width:880px){.split{grid-template-columns:1.05fr 1fr}}
.logo-card{background:var(--cream);border-radius:10px;padding:20px;border:3px solid var(--ink)}
.logo-card img{width:100%;height:auto}

.note{border-left:3px solid var(--sun);background:var(--night-1);padding:16px 20px;margin:24px 0 0;color:var(--muted);font-size:15.5px}
.note b{color:var(--text)}

/* build log */
.page-head{padding:64px 0 24px}
.page-head h1{font-family:var(--font-display);font-weight:400;font-size:clamp(38px,6vw,64px);line-height:1.02;color:var(--cream);margin:0;max-width:18ch;text-wrap:balance}
.page-head h1 span{color:var(--sign)}
.page-head .lede{max-width:64ch;color:var(--muted);margin:18px 0 0;font-size:18px}
.rules{list-style:none;padding:0;margin:0;display:grid;gap:0;border-top:1px solid var(--night-3)}
.rules li{display:grid;grid-template-columns:44px 1fr;gap:12px;padding:18px 0;border-bottom:1px solid var(--night-3)}
.rules .n{font-family:var(--font-display);font-size:26px;color:var(--sun);line-height:1}
.rules b{color:var(--cream);display:block;font-size:18px}
.rules span{color:var(--muted)}

.log{list-style:none;margin:0;padding:0;position:relative}
.log::before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--maroon),var(--green))}
.log li{position:relative;padding:0 0 32px 36px}
.log li::before{content:"";position:absolute;left:0;top:7px;width:16px;height:16px;border-radius:50%;background:var(--night);border:3px solid var(--sign)}
.log time{display:block;font-weight:800;font-size:13px;letter-spacing:.14em;color:var(--sun-2)}
.log h3{margin:4px 0 6px}
.log p{margin:0;color:var(--muted);max-width:68ch}
.log ul{margin:8px 0 0;padding-left:20px;color:var(--muted);max-width:68ch}
.log li li{padding:0 0 4px;position:static}
.log li li::before{display:none}
.log .era{padding-left:36px;font-family:var(--font-display);font-size:20px;color:var(--cream);margin:8px 0 24px}
.log .era::before{display:none}

.shots2{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));margin:32px 0 0}

footer{border-top:1px solid var(--night-3);padding:32px 0 48px;color:var(--dim);font-size:14px}
footer .wrap{display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between}
footer a{color:var(--muted)}

/* wide screens: the sign sits to the right of the headline instead of under it */
@media (min-width:900px){
  .hero .bg{left:34%}
  .hero .bg img{object-position:50% 45%}
  .hero::after{background:linear-gradient(180deg,rgba(7,10,26,0) 0%,rgba(7,10,26,.2) 55%,var(--night) 100%),linear-gradient(90deg,var(--night) 0%,var(--night) 34%,rgba(7,10,26,.35) 46%,transparent 62%)}
}

/* phones: the sign gets its own band above the headline, never behind the text */
@media (max-width:899px){
  .hero{display:block;min-height:0}
  .hero::after{display:none}
  .hero .bg{position:relative;inset:auto;height:280px;z-index:0}
  .hero .bg img{object-position:58% 45%}
  .hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,10,26,0) 55%,var(--night) 100%)}
  .hero .inner{padding-top:8px;padding-bottom:48px}
  .arch img{aspect-ratio:1/1}
}

/* trailer */
.video{position:relative;aspect-ratio:16/9;max-width:100%;border-radius:18px;overflow:hidden;background:#000;border:1px solid rgba(255,255,255,.08)}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
#trailer .intro{margin-top:12px}
#trailer{scroll-margin-top:72px}
