:root {
  --ink:#24271f;
  --muted:#62665a;
  --accent:#d9e4a5;
  --paper:#f5f3eb;
  --dark:#151714;
  --line:#d5d6c8;
  --pad:clamp(1.25rem,5vw,5.5rem);
  --font:Arial,Helvetica,sans-serif;
  --serif:Georgia,'Times New Roman',serif;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:90px;
}
body {
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font:400 1rem/1.65 var(--font);
  -webkit-font-smoothing:antialiased;
}
body.menu-open {
  overflow:hidden;
}
img {
  display:block;
  width:100%;
  height:auto;
}
a {
  color:inherit;
}
button,input,select,textarea {
  font:inherit;
}
button,a,input,select,textarea,summary {
  -webkit-tap-highlight-color:transparent;
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:2px solid currentColor;
  outline-offset:6px;
}
::selection {
  background:var(--accent);
  color:var(--dark);
}
.shell {
  width:min(100% - var(--pad)*2,1320px);
  margin-inline:auto;
}
.section {
  padding-block:clamp(4.5rem,8vw,8rem);
}
.eyebrow {
  margin:0 0 1.8rem;
  font-size:.67rem;
  letter-spacing:.16em;
  font-weight:600;
  line-height:1.7;
}
.section-title {
  margin:0;
  font:400 clamp(2.75rem,5vw,5.2rem)/1.08 var(--serif);
  letter-spacing:-.045em;
}
em {
  font-weight:400;
}
.lede {
  color:var(--muted);
  font-size:1rem;
  line-height:1.8;
}
.skip-link {
  position:fixed;
  top:-100px;
  left:1rem;
  background:var(--accent);
  color:var(--dark);
  padding:1rem;
  z-index:200;
}
.skip-link:focus {
  top:1rem;
}
.site-header {
  background: var(--dark);
  position:absolute;
  inset:0 0 auto;
  z-index:100;
  color:var(--paper);
  border-bottom:1px solid #ffffff20;
}
.site-header.scrolled {
  position:fixed;
  background:#151714f5;
  backdrop-filter:blur(16px);
}
.nav {
  min-height:92px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
}
.brand {
  text-decoration:none;
  font:400 1.9rem/1.1 var(--serif);
  letter-spacing:-.05em;
}
.brand span {
  display:block;
  font:500 .47rem/1 var(--font);
  letter-spacing:.23em;
  margin-top:.55rem;
}
.nav-links {
  display:flex;
  align-items:center;
  gap:2rem;
}
.nav-links a {
  text-decoration:none;
  font-size:.75rem;
}
.nav-links a:hover {
  color:var(--accent);
}
.nav-cta {
  border:1px solid #f5f3eb70;
  padding:.8rem 1.1rem;
}
.menu-button {
  display:none;
  background:none;
  border:0;
  color:inherit;
  width:44px;
  height:44px;
}
.menu-button::before,.menu-button::after {
  content:'';
  display:block;
  width:24px;
  height:1px;
  background:currentColor;
  margin:7px auto;
}
.menu-button[aria-expanded=true]::before {
  transform:translateY(4px) rotate(45deg);
}
.menu-button[aria-expanded=true]::after {
  transform:translateY(-4px) rotate(-45deg);
}
.hero {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:var(--dark);
  color:var(--paper);
  padding-top:92px;
}
.hero-portrait {
  position:absolute;
  inset:92px 0 0;
  z-index:-2;
}
.hero-portrait img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:72% center;
}
.hero-portrait::after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#151714 0%,#151714d9 27%,#15171436 57%,#15171400 80%),linear-gradient(0deg,#151714 0%,transparent 30%);
}
.hero-layout {
  position:relative;
  min-height:660px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-block:5rem;
}
.hero-copy {
  max-width:720px;
}
.hero .eyebrow {
  color:var(--accent);
  font-size:.63rem;
  letter-spacing:.13em;
}
.small-star {
  font-size:1.15rem;
  margin-right:.65rem;
  vertical-align:middle;
}
.headline {
  margin:0;
  font:400 clamp(3.5rem,6.5vw,7rem)/1.04 var(--serif);
  letter-spacing:-.055em;
}
.headline em {
  color:var(--accent);
}
.hero .lede {
  margin-top:1.7rem;
  color:#c5c7bc;
  font-size:1rem;
}
.actions {
  display:flex;
  align-items:center;
  gap:1.7rem;
  margin-top:2.3rem;
}
.button {
  min-height:52px;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:2rem;
  padding:.85rem 1.5rem;
  border:1px solid transparent;
  text-decoration:none;
  font-size:.78rem;
  font-weight:600;
  cursor:pointer;
  transition:background .2s,transform .2s;
}
.button:hover {
  transform:translateY(-2px);
}
.button-primary {
  color:var(--dark);
  background:var(--accent);
}
.button-primary:hover {
  background:#e8f1c8;
}
.text-link {
  text-decoration:none;
  border-bottom:1px solid currentColor;
  padding-bottom:.35rem;
  font-size:.78rem;
  display:inline-flex;
  gap:1.5rem;
  align-items:center;
}
.text-link:hover {
  opacity:.75;
}
.hero-location {
  margin-top:3rem;
  color:#b7baae;
  font-size:.55rem;
  letter-spacing:.13em;
}
.hero-location span {
  margin-inline:.6rem;
}
.portrait-caption {
  align-self:flex-end;
  text-align:right;
  margin:0 0 1.5rem 1rem;
  font-size:.62rem;
  color:#d5d7cc;
}
.portrait-caption strong {
  display:block;
  font:italic 2.5rem var(--serif);
  color:var(--paper);
}
.portrait-caption strong span {
  display:block;
  font:400 .6rem var(--font);
  letter-spacing:.12em;
}
.hero-bottom {
  position:relative;
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding-block:1.4rem;
  border-top:1px solid #ffffff25;
  font-size:.58rem;
  letter-spacing:.12em;
  color:#c5c7bc;
}
.hero-bottom a {
  text-decoration:none;
}
.hero-bottom a span {
  margin-left:2rem;
}
.facts {
  border-bottom:1px solid var(--line);
}
.fact-grid {
  display:grid;
  grid-template-columns:1fr 1.3fr 1.2fr;
  padding-block:2.5rem;
  gap:2rem;
}
.fact {
  border-right:1px solid var(--line);
  padding-right:1rem;
}
.fact:last-child {
  border:0;
}
.fact strong {
  display:block;
  font:400 clamp(1.8rem,2.7vw,2.6rem)/1.2 var(--serif);
  letter-spacing:-.035em;
}
.fact span {
  display:block;
  font-size:.7rem;
  color:var(--muted);
  margin-top:.5rem;
}
.section-head {
  margin-bottom:3rem;
}
.section-heading-row {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:3rem;
}
.section-heading-row .lede {
  max-width:350px;
  margin:0 0 .2rem;
}
.experience-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.2rem;
}
.experience {
  display:flex;
  flex-direction:column;
  min-height:410px;
  padding:2rem;
  border:1px solid var(--line);
  background:#eeeee4;
}
.experience:nth-child(2) {
  background:#e4e7d5;
}
.experience:nth-child(3) {
  background:#252c23;
  color:var(--paper);
  border-color:#252c23;
}
.experience-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:.65rem;
  letter-spacing:.1em;
}
.experience-top span:last-child {
  font-size:1.5rem;
}
.experience h3 {
  margin:2.5rem 0 1.2rem;
  font:400 2.7rem/1.03 var(--serif);
  letter-spacing:-.045em;
}
.experience p {
  font-size:.85rem;
  line-height:1.8;
  color:var(--muted);
  margin:0 0 2rem;
}
.experience:nth-child(3) p {
  color:#c4c9ba;
}
.experience a {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  margin-top:auto;
  padding-top:1.2rem;
  border-top:1px solid #81857355;
  text-decoration:none;
  font-size:.73rem;
}
.experience a:hover {
  text-decoration:underline;
}
.signature {
  background:#252c23;
  color:var(--paper);
  position:relative;
  overflow:hidden;
}
.signature-inner {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:6rem;
  align-items:center;
}
.signature .eyebrow {
  color:var(--accent);
}
.signature-intro {
  color:#c4c9ba;
  font-size:.8rem;
  margin:0 0 1.5rem;
}
.signature h2 {
  font:400 clamp(4rem,9vw,9rem)/.95 var(--serif);
  letter-spacing:-.06em;
  margin:0;
}
.signature h2 em {
  color:var(--accent);
}
.signature-copy {
  max-width:430px;
}
.signature-symbol {
  display:block;
  color:var(--accent);
  font-size:3rem;
  line-height:1;
}
.signature-copy p {
  font:400 clamp(1.8rem,3vw,3rem)/1.2 var(--serif);
  letter-spacing:-.025em;
}
.signature-detail {
  font-size:.85rem;
  color:#c4c9ba;
  line-height:1.9;
  margin-bottom:2rem;
}
.signature .text-link {
  color:var(--accent);
}
.about-grid {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:clamp(3rem,7vw,7rem);
  align-items:center;
}
.portrait {
  position:relative;
  background:#252c23;
  overflow:hidden;
}
.portrait img {
  aspect-ratio:4/4.5;
  object-fit:cover;
  object-position:center 20%;
}
.portrait>span {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:3rem 1.5rem 1.5rem;
  background:linear-gradient(transparent,#151714c9);
  color:var(--paper);
  font-size:.56rem;
  letter-spacing:.16em;
}
.about-copy>p:not(.eyebrow) {
  font-size:.9rem;
  color:var(--muted);
  max-width:520px;
  margin-top:1.5rem;
}
.about-copy .about-note {
  color:var(--ink)!important;
  font:italic 1.5rem/1.35 var(--serif)!important;
  border-left:2px solid #a6b778;
  padding-left:1.3rem;
  margin-block:2rem;
}
.live {
  padding-top:0;
}
.live-card {
  position:relative;
  overflow:hidden;
  isolation:isolate;
  color:var(--paper);
  background:var(--dark);
  min-height:560px;
  display:flex;
  align-items:center;
}
.live-photo {
  position:absolute;
  inset:0;
  z-index:-2;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:70% center;
}
.live-card::before {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,#151714f5,#151714a0 35%,transparent 80%);
}
.live-copy {
  padding:clamp(2rem,5vw,5rem);
}
.live-copy h2 {
  font:400 clamp(3rem,5.5vw,5.5rem)/1.02 var(--serif);
  letter-spacing:-.045em;
  margin:0;
}
.live-copy h2 em {
  color:var(--accent);
}
.live-copy>p:not(.eyebrow) {
  font-size:.85rem;
  color:#c5c7bc;
  margin-block:1.5rem;
}
.live-copy .eyebrow {
  color:var(--accent);
}
.faq {
  border-top:1px solid var(--line);
  padding-top:5rem;
}
.faq-grid {
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:4rem;
}
.faq-list details {
  border-bottom:1px solid var(--line);
}
.faq-list details:first-child {
  border-top:1px solid var(--line);
}
summary {
  cursor:pointer;
  padding:1.4rem 2rem 1.4rem 0;
  font-size:.9rem;
  list-style:none;
  position:relative;
}
summary::-webkit-details-marker {
  display:none;
}
summary::after {
  content:'+';
  position:absolute;
  right:.2rem;
  font-size:1.2rem;
  top:1.1rem;
  font-weight:400;
}
details[open] summary::after {
  content:'−';
}
.faq-list p {
  font-size:.85rem;
  color:var(--muted);
  margin:0 0 1.5rem;
  padding-right:1.5rem;
}
.booking {
  background:#e7eadb;
}
.booking-head {
  max-width:800px;
  margin:0 auto 3rem;
  text-align:center;
}
.booking-head .lede {
  max-width:520px;
  margin:1.5rem auto;
}
.booking-card {
  max-width:1000px;
  margin:auto;
  padding:clamp(1.5rem,4vw,4rem);
  background:var(--paper);
}
.contact-row {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding-bottom:1.5rem;
  margin-bottom:2rem;
  border-bottom:1px solid var(--line);
  font-size:.75rem;
}
.contact-row p {
  margin:0;
}
.contact-links {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem 1.2rem;
}
.contact-links a {
  text-decoration:none;
}
.contact-links a:hover {
  text-decoration:underline;
}
.contact-links span {
  color:var(--muted);
}
.booking-form {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.5rem 2rem;
}
.field {
  display:grid;
  gap:.4rem;
}
.field.full {
  grid-column:1/-1;
}
label {
  font-size:.72rem;
  color:var(--muted);
}
input,select,textarea {
  width:100%;
  min-width:0;
  padding:.8rem .2rem;
  color:var(--ink);
  background:transparent;
  border:0;
  border-bottom:1px solid #8d9280;
  border-radius:0;
  font-size:.9rem;
}
input:focus,select:focus,textarea:focus {
  outline:2px solid #657a3a;
  outline-offset:3px;
}
textarea {
  min-height:90px;
  resize:vertical;
}
.booking-form .button {
  grid-column:1/-1;
  justify-self:start;
  background:var(--dark);
  color:var(--paper);
  margin-top:.5rem;
}
.booking-form .button:hover {
  background:#35402c;
}
.form-hint {
  grid-column:1/-1;
  font-size:.7rem;
  color:var(--muted);
  margin:0;
}
footer {
  color:var(--paper);
  background:var(--dark);
}
.footer-main {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:2rem;
  padding-block:4rem;
}
.footer-wordmark {
  font:400 clamp(3rem,7vw,7rem)/1 var(--serif);
  letter-spacing:-.06em;
  margin:0;
}
.footer-wordmark span {
  color:var(--accent);
}
.socials {
  display:flex;
  gap:1.5rem;
}
.socials a {
  font-size:.72rem;
  text-decoration:none;
  color:#c5c7bc;
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding-block:1.5rem;
  border-top:1px solid #ffffff25;
  font-size:.62rem;
  color:#c5c7bc;
}
.footer-bottom a {
  text-decoration:none;
}
@media(min-width:1600px) {
  .hero-portrait img {
    object-position:center 40%;
  }
  .hero-layout {
    min-height:740px;
  }
}
@media(max-width:1000px) {
  .nav-links {
    gap:1.1rem;
  }
  .nav-links a {
    font-size:.68rem;
  }
  .hero-layout {
    min-height:620px;
  }
  .headline {
    font-size:clamp(3.7rem,7vw,5.5rem);
  }
  .hero-copy {
    max-width:65%;
  }
  .hero .eyebrow {
    max-width:330px;
  }
  .portrait-caption {
    display:none;
  }
  .experience {
    padding:1.5rem;
  }
  .experience h3 {
    font-size:2.3rem;
  }
  .signature-inner {
    gap:3rem;
  }
  .contact-row {
    flex-direction:column;
  }
}
@media(max-width:760px) {
  html {
    scroll-padding-top:80px;
  }
  .nav {
    min-height:78px;
  }
  .brand {
    font-size:1.65rem;
  }
  .menu-button {
    display:block;
    cursor:pointer;
  }
  .nav-links {
    display:none;
    position:fixed;
    inset:78px 0 0;
    background:var(--dark);
    padding:2rem var(--pad);
    align-items:stretch;
    flex-direction:column;
    gap:1.5rem;
  }
  .nav-links.open {
    display:flex;
  }
  .nav-links a {
    font-size:1.1rem;
  }
  .nav-cta {
    margin-top:1rem;
    text-align:center;
  }
  .hero {
    padding-top:78px;
  }
  .hero-portrait {
    inset:78px 0 0;
  }
  .hero-portrait img {
    object-position:68% top;
  }
  .hero-portrait::after {
    background:linear-gradient(90deg,#151714c9,transparent),linear-gradient(0deg,#151714 2%,#151714d9 35%,transparent 85%);
  }
  .hero-layout {
    min-height:720px;
    align-items:flex-end;
    padding-block:3rem;
  }
  .hero-copy {
    max-width:100%;
    width:100%;
    padding-top:250px;
  }
  .hero .eyebrow {
    font-size:.52rem;
    max-width:none;
    margin-bottom:1.2rem;
  }
  .headline {
    font-size:clamp(3rem,10.8vw,4.8rem);
  }
  .hero .lede {
    font-size:.85rem;
    max-width:340px;
    margin-top:1.2rem;
  }
  .hero-location {
    font-size:.46rem;
    line-height:1.8;
    margin-top:1.5rem;
    max-width:300px;
  }
  .actions {
    gap:1.2rem;
    flex-wrap:wrap;
    margin-top:1.5rem;
  }
  .button {
    padding:.8rem 1rem;
    font-size:.73rem;
    gap:1.5rem;
  }
  .text-link {
    font-size:.73rem;
    gap:.7rem;
  }
  .hero-bottom {
    font-size:.48rem;
    letter-spacing:.06em;
  }
  .hero-bottom a span {
    margin-left:.4rem;
  }
  .fact-grid {
    grid-template-columns:1fr 1.4fr;
    gap:1.4rem;
    padding-block:2rem;
  }
  .fact:nth-child(2) {
    border:0;
  }
  .fact:last-child {
    grid-column:1/-1;
    border-top:1px solid var(--line);
    padding-top:1.2rem;
  }
  .fact:last-child strong {
    font-size:1.6rem;
  }
  .fact span {
    font-size:.65rem;
  }
  .section-heading-row {
    display:block;
  }
  .section-heading-row .lede {
    margin-top:1.5rem;
    font-size:.9rem;
  }
  .experience-grid {
    grid-template-columns:1fr;
  }
  .experience {
    min-height:330px;
    padding:1.8rem;
  }
  .experience h3 {
    margin-top:1.5rem;
    font-size:2.7rem;
  }
  .experience p {
    max-width:450px;
  }
  .signature-inner,.about-grid,.faq-grid {
    grid-template-columns:1fr;
    gap:3rem;
  }
  .signature h2 {
    font-size:clamp(4rem,17vw,7rem);
  }
  .signature-copy {
    max-width:100%;
  }
  .signature-symbol {
    font-size:2.5rem;
  }
  .signature-copy p {
    font-size:2rem;
  }
  .about-grid {
    gap:2rem;
  }
  .portrait {
    max-width:520px;
  }
  .portrait img {
    aspect-ratio:4/4;
  }
  .live-card {
    min-height:600px;
    align-items:flex-end;
  }
  .live-photo {
    object-position:67% center;
  }
  .live-card::before {
    background:linear-gradient(0deg,#151714 0%,#151714a6 45%,transparent 90%);
  }
  .live-copy {
    padding:2rem 1.5rem;
  }
  .live-copy h2 {
    font-size:3.4rem;
  }
  .live-copy .eyebrow {
    font-size:.55rem;
  }
  .faq {
    padding-top:3.5rem;
  }
  .faq-grid {
    gap:2rem;
  }
  .booking-form {
    grid-template-columns:1fr;
  }
  .field.full,.booking-form .button,.form-hint {
    grid-column:auto;
  }
  .booking-form .button {
    width:100%;
    justify-self:stretch;
  }
  .footer-main {
    display:block;
    padding-block:3rem;
  }
  .socials {
    margin-top:2rem;
  }
  .footer-bottom {
    flex-wrap:wrap;
    font-size:.6rem;
  }
  .footer-bottom>span:nth-child(2) {
    display:none;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
  }
}
@media(max-width:760px) {
  .hero-portrait {
    height:480px;
    bottom:auto;
  }
  .hero-portrait img {
    object-position:68% center;
  }
  .hero-portrait::after {
    background:linear-gradient(90deg,#15171488,transparent),linear-gradient(0deg,#151714 0%,#15171466 25%,transparent 75%);
  }
  .headline {
    font-size:clamp(2.6rem,10.8vw,4.8rem);
  }
}
@media(max-width:760px) {
  .nav-links {
    min-height:calc(100dvh - 78px);
  }
}
