/* ==========================================================
   ARTISTRY v6: the hub. Quieter, easier to move around.
   Type: Fraunces (headings) + Space Grotesk (labels, nav, big words) + DM Sans (body).
   ========================================================== */
:root{--serif:"Fraunces","Instrument Serif",Georgia,serif;--grot:"Space Grotesk","DM Sans",Arial,sans-serif}

/* type refresh across the site */
h1,h2,h3{font-optical-sizing:auto}
.what-head h1,.what-head h2,.start-head h2,.what-panel h3,.start-panel h3,.start-opts button b,.booking-copy h3,.what-tabs button,.what-mantra,.ht-set-head h2,.ht-synopsis h3,.ht-tagline,.calendar-cta-title{font-family:var(--serif);font-weight:350;letter-spacing:-.02em}
.eyebrow,.desktop-nav a,.button,.book-big,.nav-cta,.text-link,.ht-link,.start-mail,.start-opts button i,.start-opts button span,.what-tabs button span,.footer-links a,.microcopy,.mobile-panel a,.help-pill,.hub-link,.hub-kicker,.door-n,.frow-s,.hub-now-tag,.hub-now-go,.more-links a{font-family:var(--grot)}
.eyebrow{letter-spacing:.2em;font-weight:500}
.cursor-glow,.noise{display:none}
body{background:#08070d}

/* nav */
.site-header{background:rgba(8,7,13,.82);backdrop-filter:blur(14px)}
.desktop-nav a{font-size:12px;letter-spacing:.1em;text-transform:none;font-weight:500}
.desktop-nav a.active{color:#fff}
.desktop-nav a.active:after{transform:scaleX(1);opacity:1}

/* ----- hub hero ----- */
.hub-hero{position:relative;min-height:calc(100svh - 76px);display:flex;flex-direction:column;justify-content:center;gap:clamp(18px,3vw,34px);padding:clamp(40px,6vw,80px) 4vw clamp(36px,5vw,64px);
  background:radial-gradient(ellipse at 78% 12%,rgba(90,69,179,.42),transparent 56%),radial-gradient(ellipse at 8% 100%,rgba(74,56,137,.3),transparent 50%),#08070d;overflow:hidden}
.hub-kicker{margin:0;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--ember-hi);font-weight:500}
.hub-word{margin:0;font-family:var(--grot);font-weight:600;text-transform:uppercase;letter-spacing:-.065em;line-height:.8;color:var(--cream);white-space:nowrap;font-size:19.4vw;align-self:flex-start;width:auto}
.hub-sub{display:flex;justify-content:space-between;align-items:flex-end;gap:28px 48px;flex-wrap:wrap;border-top:1px solid rgba(179,166,255,.28);padding-top:clamp(20px,2.4vw,32px)}
.hub-line{margin:0;max-width:22ch;font-family:var(--serif);font-weight:350;font-size:clamp(1.7rem,3.2vw,3rem);line-height:1.08;letter-spacing:-.02em;color:var(--cream)}
.hub-cta{display:flex;align-items:center;gap:18px 30px;flex-wrap:wrap}
.hub-link{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ember-hi);border-bottom:1px solid rgba(179,166,255,.4);padding-bottom:3px}
.hub-link:hover{color:#fff}

/* ----- doors ----- */
.hub-doors{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(179,166,255,.22);border-top:1px solid rgba(179,166,255,.22);border-bottom:1px solid rgba(179,166,255,.22)}
.door{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;aspect-ratio:4/5;padding:clamp(18px,2vw,30px);overflow:hidden;background:#08070d;isolation:isolate}
.door img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;opacity:.42;filter:grayscale(.85) contrast(1.05);transform:scale(1.04);transition:opacity .6s,filter .6s,transform 1.2s cubic-bezier(.2,.7,.2,1)}
.door:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 35%,rgba(8,7,13,.92))}
.door-n{font-size:11px;letter-spacing:.24em;color:var(--ember-hi);position:absolute;top:clamp(18px,2vw,30px);left:clamp(18px,2vw,30px)}
.door h2{margin:0;font-family:var(--grot);font-weight:600;font-size:clamp(2rem,3.4vw,3.6rem);letter-spacing:-.04em;line-height:1;color:var(--cream)}
.door p{margin:0;max-width:24ch;color:#c9c4d8;font-size:14.5px;line-height:1.5}
.door i{position:absolute;top:clamp(14px,1.8vw,26px);right:clamp(18px,2vw,30px);font-style:normal;font-size:26px;color:var(--ember-hi);transform:translateX(-10px);opacity:0;transition:.4s}
.door:hover img,.door:focus-visible img{opacity:.85;filter:none;transform:scale(1.09)}
.door:hover i,.door:focus-visible i{opacity:1;transform:none}
.door:focus-visible{outline-offset:-4px}

/* ----- now showing strip ----- */
.hub-now{display:grid;grid-template-columns:clamp(160px,24vw,360px) 1fr auto;align-items:center;gap:clamp(16px,3vw,44px);margin:clamp(40px,5vw,72px) 4vw 0;padding:14px clamp(16px,2vw,28px) 14px 14px;border:1px solid rgba(179,166,255,.28);background:rgba(14,12,22,.7);transition:border-color .3s,transform .4s}
.hub-now:hover{border-color:var(--ember);transform:translateY(-3px)}
.hub-now img{width:100%;height:auto;aspect-ratio:2.39/1;object-fit:cover;display:block}
.hub-now-copy{display:flex;flex-direction:column;gap:4px}
.hub-now-tag{display:flex;align-items:center;gap:10px;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--ember-hi)}
.hub-now-tag .live-dot{width:8px;height:8px;display:inline-block}
.hub-now b{font-family:var(--serif);font-weight:350;font-size:clamp(1.6rem,2.6vw,2.4rem);letter-spacing:-.02em;color:var(--cream)}
.hub-now em{font-style:normal;color:#a7a1bd;font-size:14px}
.hub-now-go{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ember-hi)}
.start{margin-top:clamp(40px,6vw,90px)}

/* ----- inner pages ----- */
.sub-head{padding-top:clamp(70px,9vw,130px);padding-bottom:clamp(20px,3vw,40px)}
.sub-head h1{margin:.1em 0 0;font-family:var(--grot);font-weight:600;font-size:clamp(3.2rem,9.4vw,10rem);letter-spacing:-.055em;line-height:.9;color:var(--cream)}
.sub-head .eyebrow{color:var(--ember-hi)}
.film-rows{display:flex;flex-direction:column;border-top:1px solid rgba(179,166,255,.25);padding-top:0;padding-bottom:clamp(50px,7vw,100px)}
.frow{display:grid;grid-template-columns:clamp(110px,16vw,240px) 1fr auto 30px;align-items:center;gap:clamp(14px,2.4vw,36px);padding:clamp(14px,1.6vw,22px) 0;border-bottom:1px solid rgba(179,166,255,.25);transition:padding .4s,background .3s}
.frow img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;display:block;align-self:center}
.frow-t{display:flex;flex-direction:column;gap:4px}
.frow-t b{font-family:var(--grot);font-weight:600;font-size:clamp(1.4rem,3vw,3rem);letter-spacing:-.04em;line-height:1.05;color:var(--cream)}
.frow-t em{font-style:normal;color:#a7a1bd;font-size:14px}
.frow-s{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#cfc9e6;border:1px solid rgba(179,166,255,.35);padding:7px 14px;white-space:nowrap}
.frow-s.now{background:var(--ember);border-color:var(--ember);color:#0b0818;font-weight:600}
.frow i{font-style:normal;font-size:24px;color:var(--ember-hi);transition:transform .4s}
.frow:hover{padding-left:14px;background:linear-gradient(90deg,rgba(143,124,240,.14),transparent)}
.frow:hover i{transform:translateX(6px)}
.more-strip{border-top:1px solid rgba(179,166,255,.22);background:#08070d}
.more-links{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(179,166,255,.22);margin-top:20px;border:1px solid rgba(179,166,255,.22)}
.more-links a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:26px 28px;background:#08070d;font-size:clamp(1.1rem,1.8vw,1.6rem);font-weight:500;letter-spacing:-.02em;color:var(--cream);transition:background .3s,color .3s}
.more-links a:hover{background:var(--ember);color:#0b0818}
.more-links i{font-style:normal}

/* minimal: fewer rules and boxes */
.what{background:#08070d}
.what-mantra{opacity:.9}

@media(max-width:1000px){
  .hub-doors{grid-template-columns:1fr 1fr}
  .door{aspect-ratio:1/1}
  .hub-now{grid-template-columns:clamp(120px,32vw,220px) 1fr}
  .hub-now-go{display:none}
}
@media(max-width:640px){
  .hub-hero{min-height:calc(100svh - 70px);justify-content:flex-end;padding-bottom:36px}
  .hub-sub{flex-direction:column;align-items:stretch}
  .hub-cta{flex-direction:column;align-items:stretch;gap:16px}
  .hub-link{align-self:flex-start}
  .hub-now{grid-template-columns:1fr;gap:12px;margin-left:5vw;margin-right:5vw}
  .door{aspect-ratio:4/3}
  .frow{grid-template-columns:96px 1fr 22px;grid-template-areas:"i t a" "i s s"}
  .frow img{grid-area:i}.frow-t{grid-area:t}.frow-s{grid-area:s;justify-self:start}.frow i{grid-area:a}
  .more-links{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.door img,.door i,.hub-now,.frow,.frow i{transition:none}}
