/* ---------- tokens ---------- */
:root{
  --navy:#27355A;
  --navy-deep:#1B2540;
  --ink:#0C0F18;
  --copper:#B3673A;
  --copper-light:#D08A55;
  --cream:#F4EFE7;
  --cream-dim:#CFC9C0;
  --serif:"Playfair Display",Georgia,serif;
  --sans:"Jost","Helvetica Neue",Arial,sans-serif;
  --pad:clamp(4.5rem,10vw,9rem);
  --gutter:clamp(1.25rem,5vw,3rem);
}

*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--navy);color:var(--cream);
  font-family:var(--serif);font-size:1.05rem;line-height:1.75;
  overflow-wrap:break-word;
}
img,svg,video,iframe{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{margin:0;font-weight:500;line-height:1.12}
p{margin:0 0 1.1em}
:focus-visible{outline:2px solid var(--copper-light);outline-offset:3px}
.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}

.shell{width:100%;max-width:1200px;margin-inline:auto;padding-inline:var(--gutter)}

/* faint postmark texture on the navy fields */
.tex{position:relative;isolation:isolate}
.tex::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23D08A55' stroke-width='1'%3E%3Ccircle cx='30' cy='30' r='22'/%3E%3Ccircle cx='90' cy='90' r='22'/%3E%3C/g%3E%3C/svg%3E");
  background-size:150px 150px;
}
.tex > .shell{position:relative;z-index:1}

/* ---------- shared type ---------- */
.h2{font-family:var(--serif);font-size:clamp(2.05rem,4.6vw,3.25rem)}
.lede{color:var(--cream-dim);max-width:62ch;font-size:1.08rem}
.placard{
  font-family:var(--sans);text-transform:uppercase;letter-spacing:.22em;
  font-size:.72rem;font-weight:500;color:var(--copper-light);margin:0 0 .9rem;
}
.placard--sm{font-size:.65rem;color:var(--copper-light)}
.placard--gap{margin-top:1.6rem}
.brk{color:var(--copper-light)}
.script-eyebrow{
  font-family:var(--serif);font-style:italic;font-size:1.05rem;
  color:var(--cream);letter-spacing:.04em;margin:0 0 .8rem;
}
.script-eyebrow--dark{color:var(--copper)}
.ornament{width:190px;opacity:.9}
.ornament--center{margin:0 auto clamp(2rem,4vw,3rem)}
.ornament--left{margin:0 0 1.6rem}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--sans);text-transform:uppercase;letter-spacing:.22em;
  font-size:.72rem;font-weight:500;text-decoration:none;
  padding:1rem 1.7rem;min-height:48px;border:0;cursor:pointer;
  box-shadow:0 12px 28px rgba(0,0,0,.32);
  transition:background .25s ease,transform .25s ease,box-shadow .25s ease;
}
.btn--copper{background:var(--copper);color:var(--cream)}
.btn--copper:hover{background:var(--copper-light);transform:translateY(-2px);box-shadow:0 16px 34px rgba(0,0,0,.4)}
.btn--sm{padding:.7rem 1.15rem;min-height:44px;box-shadow:none}

.link-caps{
  display:inline-block;font-family:var(--sans);text-transform:uppercase;
  letter-spacing:.22em;font-size:.72rem;font-weight:500;color:var(--copper-light);
  text-decoration:none;padding:.6rem 0;border-bottom:1px solid rgba(208,138,85,.45);
  transition:border-color .25s ease,color .25s ease;
}
.link-caps:hover{color:var(--cream);border-color:var(--cream)}

/* ---------- announcement ---------- */
.announce{
  position:relative;background:var(--copper);color:var(--cream);
  overflow:hidden;padding:.6rem 3rem;
}
.announce__track{
  margin:0;text-align:center;font-family:var(--sans);
  text-transform:uppercase;letter-spacing:.18em;font-size:.62rem;font-weight:500;line-height:1.6;
}
.announce__close{
  position:absolute;right:.25rem;top:50%;transform:translateY(-50%);
  background:none;border:0;color:var(--cream);font-size:1.25rem;line-height:1;
  width:44px;height:44px;cursor:pointer;
}
@media(min-width:600px){.announce__track{font-size:.66rem;letter-spacing:.2em}}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:60;background:var(--navy);
  border-bottom:1px solid rgba(179,103,58,.35);transition:box-shadow .3s ease,background .3s ease;
}
.site-header.is-stuck{box-shadow:0 10px 30px rgba(0,0,0,.4);background:rgba(27,37,64,.96);backdrop-filter:blur(8px)}
.site-header__inner{display:flex;align-items:center;gap:1rem;min-height:68px}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;min-width:0}
.brand__mark{
  width:40px;height:40px;flex:none;
  filter:brightness(0) invert(1) sepia(.18) saturate(.6) hue-rotate(340deg);
}
.brand__word{
  font-family:var(--sans);text-transform:uppercase;letter-spacing:.22em;
  font-size:.7rem;color:var(--cream);white-space:nowrap;
}
.nav-desktop{margin-left:auto;display:none}
.nav-desktop ul{display:flex;gap:clamp(1rem,2.4vw,2rem);list-style:none;margin:0;padding:0}
.nav-desktop a{
  font-family:var(--sans);text-transform:uppercase;letter-spacing:.22em;
  font-size:.68rem;text-decoration:none;color:var(--cream);padding:.5rem 0;
  border-bottom:1px solid transparent;transition:border-color .25s,color .25s;
}
.nav-desktop a:hover,.nav-desktop a[aria-current]{color:var(--copper-light);border-color:var(--copper-light)}
.header-cta{display:none;margin-left:1.4rem}
.burger{
  margin-left:auto;width:46px;height:46px;background:none;border:0;cursor:pointer;
  display:flex;flex-direction:column;justify-content:center;gap:5px;padding:0 10px;
}
.burger span{display:block;height:1.5px;background:var(--cream)}

@media(min-width:940px){
  .nav-desktop{display:block}
  .header-cta{display:inline-flex}
  .burger{display:none}
}

/* ---------- mobile nav ---------- */
.mobile-nav{
  position:fixed;inset:0;z-index:90;background:var(--navy-deep);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1.3rem;padding:2rem;
}
.mobile-nav[hidden]{display:none}
.mobile-nav__mark{width:56px;height:56px;filter:brightness(0) invert(1);opacity:.9}
.mobile-nav__close{
  position:absolute;top:.6rem;right:.8rem;width:48px;height:48px;
  background:none;border:0;color:var(--cream);font-size:2rem;line-height:1;cursor:pointer;
}
.mobile-nav ul{list-style:none;margin:0;padding:0;text-align:center}
.mobile-nav li{margin:.3rem 0}
.mobile-nav a{
  font-family:var(--sans);text-transform:uppercase;letter-spacing:.22em;
  font-size:.95rem;text-decoration:none;color:var(--cream);display:block;padding:.55rem 1rem;
}
.mobile-nav a:hover{color:var(--copper-light)}
.mobile-nav__meta{font-size:.85rem;color:var(--cream-dim);margin:0}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--ink);min-height:min(94vh,780px);display:flex;align-items:flex-end;overflow:hidden}
.hero__bg{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 65%;
  animation:kb 24s ease-out forwards;
}
@keyframes kb{from{transform:scale(1.09)}to{transform:scale(1)}}
.hero__scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(12,15,24,.92) 0%,rgba(12,15,24,.72) 38%,rgba(12,15,24,.18) 72%,rgba(12,15,24,.45) 100%),
    linear-gradient(180deg,rgba(12,15,24,.72) 0%,rgba(12,15,24,.15) 45%,rgba(12,15,24,.82) 100%);
}
.hero__inner{position:relative;z-index:2;padding-top:clamp(4rem,14vw,8rem);padding-bottom:clamp(4rem,9vw,6.5rem);max-width:1200px}
.hero__stamp{width:54px;height:54px;filter:brightness(0) invert(1);opacity:.92;margin-bottom:1.1rem}
.hero__title{
  font-family:var(--sans);font-weight:400;text-transform:uppercase;
  letter-spacing:.15em;line-height:1.34;color:var(--cream);
  font-size:clamp(1.3rem,3.4vw,2.35rem);max-width:16ch;margin-bottom:1.3rem;
  text-shadow:0 2px 26px rgba(0,0,0,.75);
}
.hero__sub{max-width:40ch;color:var(--cream);font-size:1.06rem;text-shadow:0 1px 14px rgba(0,0,0,.8)}
.hero__cta{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.8rem;margin-top:1.7rem}
.hero__plate{
  position:absolute;right:var(--gutter);bottom:1.4rem;z-index:2;margin:0;display:none;
  font-family:var(--sans);text-transform:uppercase;letter-spacing:.22em;font-size:.6rem;
  color:var(--cream);background:rgba(12,15,24,.6);border-left:2px solid var(--copper);
  padding:.5rem .8rem;
}
.hero__cue{
  position:absolute;left:var(--gutter);bottom:0;width:1px;height:52px;
  background:linear-gradient(180deg,transparent,var(--copper-light));opacity:.7;display:none;
}
@media(min-width:940px){
  .hero__bg{object-position:66% 62%}
  .hero__inner{padding-left:calc(var(--gutter) + 2vw);max-width:1200px}
  .hero__title{max-width:14ch}
  .hero__plate,.hero__cue{display:block}
}

/* ---------- story ---------- */
.story{background:var(--navy);padding:var(--pad) 0}
.story__grid{display:grid;gap:2.2rem}
.story__panel{background:var(--cream);padding:clamp(1.5rem,4vw,2.6rem);position:relative;box-shadow:0 26px 60px rgba(0,0,0,.32)}
.story__lockup{width:min(300px,80%);margin-bottom:1.5rem}
.story__photo{margin:0;overflow:hidden;position:relative}
.story__photo img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .8s ease}
.story__photo:hover img{transform:scale(1.04)}
.story__photo figcaption{
  position:absolute;left:0;bottom:0;background:rgba(12,15,24,.78);color:var(--cream);
  border-left:2px solid var(--copper);font-family:var(--sans);text-transform:uppercase;
  letter-spacing:.18em;font-size:.58rem;padding:.5rem .75rem;
}
.story__copy p{color:var(--cream-dim);max-width:56ch}
.story__copy .h2{color:var(--cream);margin-bottom:1.2rem}
.story__links{display:flex;flex-wrap:wrap;gap:1rem 2rem;margin-top:.6rem}
.pull{
  font-family:var(--serif);font-style:italic;color:var(--copper-light);
  font-size:clamp(1.55rem,3.6vw,2.3rem);line-height:1.25;margin:1.9rem 0 1.7rem;
  padding-left:1.1rem;border-left:2px solid rgba(179,103,58,.7);
}
@media(min-width:940px){
  .story__grid{grid-template-columns:1.02fr .98fr;align-items:center;gap:0}
  .story__panel{margin-right:-4.5rem;z-index:2}
  .story__copy{padding:clamp(2rem,4vw,3.5rem) 0 clamp(2rem,4vw,3.5rem) clamp(5.5rem,7vw,7.5rem)}
  .story__grid>*{min-width:0}
}

/* ---------- gallery ---------- */
.gallery{background:var(--ink);padding:var(--pad) 0}
.section-head{margin-bottom:clamp(2.4rem,5vw,3.6rem)}
.section-head .h2{margin-bottom:.9rem}
.section-head--center{text-align:center}
.section-head--center .lede{margin-inline:auto}

.plates{display:grid;grid-template-columns:1fr;gap:14px}
.plate{
  position:relative;margin:0;overflow:hidden;background:#000;
  border:1px solid rgba(179,103,58,.28);
}
.plate img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;transition:transform .7s ease,opacity .5s ease;opacity:.94}
.plate:hover img{transform:scale(1.05);opacity:1}
.plate figcaption{
  position:absolute;left:0;bottom:0;
  background:rgba(12,15,24,.84);border-left:2px solid var(--copper);
  color:var(--cream);font-family:var(--sans);text-transform:uppercase;
  letter-spacing:.2em;font-size:.58rem;padding:.55rem .8rem;
  transition:background .3s ease;
}
.plate:hover figcaption{background:rgba(179,103,58,.92)}
.gallery__cta{margin-top:clamp(2.2rem,4vw,3rem);text-align:center}

@media(min-width:640px){
  .plates{grid-template-columns:repeat(2,1fr);gap:16px}
  .plate--wide{grid-column:span 2}
}
@media(min-width:1000px){
  .plates{
    grid-template-columns:repeat(4,1fr);
    grid-template-rows:210px 210px 210px 210px 320px;
    grid-template-areas:
      "p1 p2 p3 p4"
      "p1 p9 p9 p9"
      "p5 p9 p9 p9"
      "p5 p6 p7 p8"
      "p10 p10 p10 p10";
    gap:18px;
  }
  .plate{grid-column:auto;grid-row:auto}
  .p1{grid-area:p1}.p2{grid-area:p2}.p3{grid-area:p3}.p4{grid-area:p4}
  .p5{grid-area:p5}.p6{grid-area:p6}.p7{grid-area:p7}.p8{grid-area:p8}
  .p9{grid-area:p9}.p10{grid-area:p10}
  .plate img{aspect-ratio:auto;height:100%}
}

/* ---------- locations ---------- */
.locations{background:var(--navy);padding:var(--pad) 0}
.info-strip{
  display:flex;flex-wrap:wrap;gap:1.6rem 3rem;justify-content:center;text-align:center;
  border-top:1px solid rgba(179,103,58,.4);border-bottom:1px solid rgba(179,103,58,.4);
  padding:1.8rem 0;margin-bottom:clamp(2.4rem,5vw,3.6rem);
}
.info-strip p{margin:0;color:var(--cream-dim);font-size:1rem}
.info-strip a{text-decoration:none;border-bottom:1px solid rgba(208,138,85,.5)}
.info-strip a:hover{color:var(--copper-light)}
.info-strip__rule{display:none;width:1px;background:rgba(179,103,58,.4)}
@media(min-width:700px){.info-strip__rule{display:block}}

.loc-grid{display:grid;gap:1.6rem}
@media(min-width:820px){.loc-grid{grid-template-columns:1fr 1fr;gap:2rem}.loc-grid>*{min-width:0}}
.loc-card{
  background:var(--navy-deep);border:1px solid rgba(179,103,58,.55);
  padding:clamp(1.6rem,3.5vw,2.4rem);position:relative;
  box-shadow:0 22px 46px rgba(0,0,0,.28);
  transition:transform .3s ease,box-shadow .3s ease;
}
.loc-card:hover{transform:translateY(-4px);box-shadow:0 28px 56px rgba(0,0,0,.4)}
.loc-card::before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:var(--copper)}
.loc-card__kicker{
  font-family:var(--sans);text-transform:uppercase;letter-spacing:.22em;
  font-size:.7rem;color:var(--copper-light);margin-bottom:.6rem;
}
.loc-card__city{font-size:1.75rem;margin-bottom:.4rem}
.loc-card__hood{
  font-family:var(--sans);text-transform:uppercase;letter-spacing:.22em;
  font-size:.6rem;color:var(--cream-dim);margin-bottom:1rem;
}
.status-pill{
  display:inline-flex;align-items:center;gap:.55rem;margin:0 0 1.2rem;
  border:1px solid rgba(208,138,85,.5);padding:.4rem .8rem;
  font-family:var(--sans);text-transform:uppercase;letter-spacing:.16em;
  font-size:.58rem;color:var(--cream);
}
.status-pill__dot{width:7px;height:7px;border-radius:50%;background:var(--copper-light);flex:none}
.status-pill.is-open .status-pill__dot{background:#7FB98A}
.loc-card p{color:var(--cream-dim)}
.loc-card__meta{display:grid;grid-template-columns:auto 1fr;gap:.35rem .9rem;margin:1.4rem 0 1.6rem;font-size:.94rem}
.loc-card__meta dt{
  font-family:var(--sans);text-transform:uppercase;letter-spacing:.18em;
  font-size:.6rem;color:var(--copper-light);padding-top:.35rem;
}
.loc-card__meta dd{margin:0;color:var(--cream-dim)}
.loc-card__meta a{text-decoration:none;border-bottom:1px solid rgba(208,138,85,.5)}

/* ---------- social ---------- */
.social{background:var(--navy-deep);padding:var(--pad) 0}
.social__grid{display:grid;gap:2rem}
@media(min-width:820px){.social__grid{grid-template-columns:.9fr 1.1fr;gap:clamp(2.5rem,6vw,5rem);align-items:center}.social__grid>*{min-width:0}}
.social__placard{border-left:2px solid var(--copper);padding-left:1.5rem}
.social__handle{
  font-family:var(--serif);font-size:clamp(1.8rem,5vw,3rem);color:var(--cream);margin:0;line-height:1.15;
}
.social__copy p{color:var(--cream-dim);max-width:56ch}
.social__links{display:flex;gap:1.8rem;flex-wrap:wrap}

/* ---------- newsletter ---------- */
.newsletter{background:var(--ink);padding:var(--pad) 0;text-align:center}
.newsletter__inner{max-width:720px}
.newsletter .script-eyebrow{font-size:clamp(1.15rem,2.8vw,1.6rem)}
.signup{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:1.6rem}
.signup input{
  flex:1 1 260px;min-width:0;max-width:340px;
  background:var(--cream);border:1px solid var(--cream);color:#1B2540;
  font-family:var(--serif);font-size:1rem;padding:.95rem 1rem;min-height:52px;
}
.signup input::placeholder{color:#7d7a74}
.signup .btn{min-height:52px;flex:0 0 auto}
.signup__msg{margin-top:1rem;color:var(--copper-light);font-style:italic;min-height:1.4em}

/* ---------- closing ---------- */
.closing{position:relative;background:var(--ink);padding:var(--pad) 0;overflow:hidden;text-align:center}
.closing__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 65%;opacity:.26}
.closing__inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center}
.closing__title{font-size:clamp(2.3rem,7vw,4.4rem);text-shadow:0 2px 24px rgba(0,0,0,.75);margin-bottom:1.8rem}
.closing__cta{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem 1.8rem}

/* ---------- footer ---------- */
.site-footer{background:var(--navy-deep)}
.footer__top{display:grid;gap:2rem;padding-top:clamp(3rem,7vw,5rem);padding-bottom:clamp(3rem,7vw,5rem)}
@media(min-width:760px){.footer__top{grid-template-columns:1fr 1fr;gap:2.5rem}}
@media(min-width:1000px){.footer__top{grid-template-columns:1.1fr .8fr 1.2fr 1fr}}
.footer__top>*{min-width:0}
.brand__mark--lg{width:70px;height:70px}
.footer__tag{font-family:var(--serif);font-style:italic;color:var(--copper-light);margin-top:.9rem}
.footer__nav ul{list-style:none;margin:0;padding:0}
.footer__nav li{margin-bottom:.35rem}
.footer__nav a,.footer__col a{
  text-decoration:none;color:var(--cream-dim);
  border-bottom:1px solid transparent;transition:color .25s,border-color .25s;
}
.footer__nav a:hover,.footer__col a:hover{color:var(--cream);border-color:var(--copper-light)}
.footer__col p{margin:0 0 .3rem;color:var(--cream-dim);font-size:.98rem}
.footer__band{background:var(--copper);text-align:center;padding:2.6rem 1rem}
.footer__band img{width:88px;height:88px;margin:0 auto 1.1rem}
.footer__band p{
  margin:0;font-family:var(--sans);text-transform:uppercase;letter-spacing:.22em;
  font-size:.68rem;color:var(--cream);
}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-in{opacity:1;transform:none}

@media(prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;scroll-behavior:auto !important}
  .reveal{opacity:1;transform:none}
}