@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600&display=swap');
:root {
  --charcoal:#171713;
  --night:#101210;
  --paper:#f1eee7;
  --paper2:#e8e3d8;
  --white:#fbf9f4;
  --ink:#22231f;
  --muted:#666963;
  --line:#d3cec3;
  --gold:#ba9d70;
  --gold-soft:#d6c2a2;
  scroll-behavior:smooth;
  scroll-padding-top:84px;
}
* {
  box-sizing:border-box;
}
html,body {
  margin:0;
  max-width:100%;
  overflow-x:clip;
}
body {
  background:var(--paper);
  color:var(--ink);
  font-family:'Poppins',Arial,sans-serif;
  font-size:16px;
  line-height:1.65;
}
img {
  display:block;
  max-width:100%;
}
button,input,textarea,select {
  font:inherit;
}
button {
  cursor:pointer;
}
a {
  color:inherit;
}
p,h1,h2,h3 {
  margin-top:0;
}
h1,h2,h3 {
  font-family:'Poppins',Arial,sans-serif;
  font-weight:500;
  line-height:1.05;
}
h2 em,h1 em {
  font-weight:400;
}
i.fa-solid,i.fa-regular,i.fa-brands {
  font-size:.9em;
}
::selection {
  background:var(--gold);
  color:#111;
}
:focus-visible {
  outline:2px solid var(--gold);
  outline-offset:4px;
}
.skip-link {
  position:fixed;
  top:-80px;
  left:14px;
  z-index:100;
  background:#fff;
  padding:10px 18px;
}
.skip-link:focus {
  top:14px;
}
.site-header {
  position:absolute;
  inset:0 0 auto;
  z-index:50;
  height:94px;
  padding:0 clamp(22px,5vw,85px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#fff;
  transition:background .35s,box-shadow .35s;
}
.site-header.scrolled {
  position:fixed;
  background:#161813ee;
  box-shadow:0 12px 30px #0002;
  backdrop-filter:blur(14px);
}
.brand {
  display:flex;
  align-items:center;
  gap:11px;
  text-decoration:none;
  white-space:nowrap;
}
.brand img {
  width:48px;
  height:48px;
  object-fit:cover;
  border-radius:50%;
  background:#fff;
}
.brand span {
  font-family:'Poppins',Arial,sans-serif;
  font-size:1.7rem;
  font-weight:600;
  letter-spacing:-.045em;
}
.site-nav {
  display:flex;
  align-items:center;
  gap:clamp(16px,2.1vw,35px);
}
.site-nav a {
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  text-decoration:none;
  transition:color .25s;
  position:relative;
}
.site-nav a:not(.nav-contact):after {
  content:'';
  position:absolute;
  left:0;
  bottom:-7px;
  width:0;
  height:1px;
  background:var(--gold);
  transition:width .3s;
}
.site-nav a:not(.nav-contact):hover:after,.site-nav a.active:not(.nav-contact):after {
  width:100%;
}
.site-nav a:hover,.site-nav a.active {
  color:var(--gold-soft);
}
.site-nav .nav-contact {
  border:1px solid #ffffffa0;
  padding:12px 19px;
  display:flex;
  gap:17px;
  align-items:center;
}
.site-nav .nav-contact:hover {
  background:#fff;
  color:#171713;
}
.menu-toggle {
  display:none;
}
.hero {
  height:100svh;
  min-height:560px;
  max-height:850px;
  background:var(--night);
  color:#fff;
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.hero-images {
  position:absolute;
  inset:0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:4px;
}
.hero-pane {
  overflow:hidden;
  position:relative;
  background:#242724;
}
.hero-pane img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform 8s ease,opacity .55s ease;
  animation:hero-image-enter 1.3s ease both;
}
.hero-pane-one img {
  object-position:50% 55%;
}
.hero-pane-two img {
  object-position:50% 46%;
  animation-delay:.12s;
}
.hero-pane-three img {
  object-position:50% 43%;
  animation-delay:.24s;
}
.hero-pane img.swap {
  opacity:.15;
  transform:scale(1.06);
}
.hero-vignette {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#080c0cd9 0%,#090e0dab 27%,#090d0b64 55%,#090c0b28 100%),linear-gradient(0deg,#080b0bec 0%,transparent 40%,#080b0b6e 100%);
}
.hero-content {
  position:absolute;
  z-index:2;
  left:clamp(22px,8vw,130px);
  top:50%;
  transform:translateY(-42%);
  width:min(675px,60vw);
  animation:hero-copy-enter .9s .25s ease both;
}
.hero-eyebrow,.eyebrow {
  font-size:.67rem;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
}
.hero-eyebrow {
  color:var(--gold-soft);
  margin-bottom:22px;
}
.hero h1 {
  font-size:clamp(3.9rem,6.4vw,6.4rem);
  letter-spacing:-.04em;
  margin:0 0 21px;
  line-height:.9;
}
.hero h1 em {
  color:#eee5d2;
}
.hero-support {
  max-width:510px;
  color:#eeeae1;
  font-size:1.01rem;
  line-height:1.65;
  margin-bottom:27px;
}
.hero-actions {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:26px;
  min-height:49px;
  padding:12px 20px;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  text-decoration:none;
  border:1px solid transparent;
  transition:transform .25s,background .25s,color .25s,border-color .25s;
}
.button:hover {
  transform:translateY(-3px);
}
.button-ivory {
  background:var(--white);
  color:#1c211d;
}
.button-ivory:hover {
  background:var(--gold-soft);
}
.button-outline {
  color:#fff;
  border-color:#ffffffa8;
  background:#ffffff12;
}
.button-outline:hover {
  background:#fff;
  color:#171713;
}
.button-dark {
  background:var(--charcoal);
  color:#fff;
}
.button-dark:hover {
  background:#4a4539;
}
.hero-bottom {
  position:absolute;
  z-index:3;
  bottom:24px;
  left:clamp(22px,5vw,85px);
  right:clamp(22px,5vw,85px);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:end;
  gap:20px;
  border-top:1px solid #ffffff65;
  padding-top:16px;
  color:#ebe9e3;
}
.hero-bottom-note,.scroll-cue {
  font-size:.64rem;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.hero-bottom-note {
  max-width:240px;
}
.scroll-cue {
  justify-self:end;
  text-decoration:none;
  display:flex;
  gap:15px;
  align-items:center;
}
.hero-slide-ui {
  display:flex;
  align-items:center;
  gap:15px;
}
.hero-slide-ui button {
  width:34px;
  height:34px;
  border:1px solid #ffffff7d;
  background:#1115;
  color:#fff;
  border-radius:50%;
  transition:background .2s;
}
.hero-slide-ui button:hover {
  background:#ffffff4d;
}
.hero-index {
  font-size:.67rem;
  letter-spacing:.15em;
  white-space:nowrap;
}
.hero-index b {
  color:var(--gold-soft);
}
@keyframes hero-image-enter {
  from {
    opacity:.2;
    transform:scale(1.075);
  }
  to {
    opacity:1;
    transform:scale(1);
  }
}
@keyframes hero-copy-enter {
  from {
    opacity:0;
    translate:0 25px;
  }
  to {
    opacity:1;
    translate:0 0;
  }
}
.section {
  padding:clamp(80px,9vw,145px) clamp(22px,7vw,112px);
}
.section-top {
  display:flex;
  align-items:center;
  gap:25px;
  margin-bottom:55px;
}
.section-top .eyebrow {
  white-space:nowrap;
  color:#8c795c;
}
.section-top .rule {
  height:1px;
  background:var(--line);
  flex:1;
}
.section-tail {
  color:#78796f;
  font-family:'Poppins',Arial,sans-serif;
  font-style:italic;
  font-size:1.15rem;
  white-space:nowrap;
}
.section h2 {
  font-size:clamp(2.9rem,4.6vw,4.9rem);
  letter-spacing:-.04em;
  margin:0;
}
.section-dark {
  background:var(--charcoal);
  color:var(--white);
}
.section-dark .section-top .rule {
  background:#ffffff36;
}
.section-dark .section-tail {
  color:#b7b2a7;
}
.about {
  background:var(--paper);
}
.about-intro {
  display:grid;
  grid-template-columns:1fr .9fr;
  gap:clamp(35px,7vw,105px);
  align-items:end;
}
.about-heading h2 {
  max-width:700px;
}
.mini-mark {
  display:block;
  margin-top:30px;
  font-size:1.6rem;
  color:var(--gold);
}
.about-lead p {
  font-family:'Poppins',Arial,sans-serif;
  font-size:clamp(1.5rem,2.05vw,2.15rem);
  line-height:1.27;
  letter-spacing:-.015em;
  margin:0;
}
.about-story {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:clamp(45px,9vw,145px);
  align-items:center;
  margin-top:100px;
}
.about-visual {
  position:relative;
  width:100%;
  max-height:600px;
  overflow:hidden;
}
.about-visual img {
  width:100%;
  height:min(55vw,600px);
  object-fit:cover;
  object-position:center;
}
.image-label,.art-caption {
  position:absolute;
  bottom:18px;
  left:20px;
  color:#fff;
  font-size:.64rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  text-shadow:0 1px 8px #0009;
}
.about-text {
  max-width:640px;
  color:#565a53;
}
.about-text p {
  margin-bottom:27px;
}
.about-quote {
  position:relative;
  max-width:940px;
  margin:100px auto 0;
  padding:20px 0 0 70px;
  border-left:1px solid var(--gold);
}
.about-quote .quote-icon {
  position:absolute;
  left:20px;
  top:-20px;
  font-family:Georgia,serif;
  font-size:5rem;
  line-height:1;
  color:var(--gold);
}
.about-quote p {
  font-family:'Poppins',Arial,sans-serif;
  font-size:clamp(1.65rem,2.8vw,2.8rem);
  line-height:1.23;
  letter-spacing:-.025em;
  margin:0;
}
.workshops {
  background:#191b18;
}
.section-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:50px;
  margin-bottom:50px;
}
.section-heading h2 {
  flex:1;
}
.section-heading p {
  flex:0 1 400px;
  max-width:400px;
  margin:0;
  color:#9faba2;
  font-size:.9rem;
}
.workshop-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
}
.workshop-card {
  border:1px solid #ffffff24;
  background:#202420;
  min-width:0;
  overflow:hidden;
}
.workshop-feature {
  grid-column:1/-1;
  display:grid;
  grid-template-columns:1.15fr 1fr;
  min-height:520px;
}
.workshop-art {
  position:relative;
  overflow:hidden;
  background:#303c38;
}
.workshop-art:after {
  content:'';
  position:absolute;
  inset:40% 0 0;
  background:linear-gradient(0deg,#0008,transparent);
  pointer-events:none;
}
.workshop-art img {
  width:100%;
  height:100%;
  min-height:330px;
  object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.6,.2,1);
}
.workshop-card:hover .workshop-art img {
  transform:scale(1.045);
}
.workshop-feature .workshop-art img {
  position:absolute;
  inset:0;
}
.poster-art {
  height:360px;
}
.poster-art img {
  object-position:center 23%;
}
.workshop-info {
  padding:clamp(25px,3.5vw,55px);
  display:flex;
  flex-direction:column;
}
.card-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  color:var(--gold-soft);
  font-size:.63rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.18em;
}
.card-count {
  color:#a3a99f;
  white-space:nowrap;
}
.workshop-info h3 {
  font-size:clamp(2.9rem,4.5vw,5rem);
  margin:20px 0 7px;
  letter-spacing:-.035em;
}
.workshop-description {
  font-family:'Poppins',Arial,sans-serif;
  font-size:clamp(1.25rem,1.7vw,1.9rem);
  font-style:italic;
  color:#e2d5bb;
  line-height:1.17;
  margin-bottom:28px;
}
.workshop-info dl {
  margin:auto 0 0;
}
.workshop-info dl div {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:10px 0;
  border-top:1px solid #ffffff25;
  font-size:.78rem;
}
.workshop-info dt {
  color:#adb6ad;
  display:flex;
  align-items:center;
  gap:11px;
}
.workshop-info dd {
  margin:0;
  text-align:right;
}
.card-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-top:1px solid #ffffff25;
  margin-top:26px;
  padding-top:22px;
}
.card-actions a,.card-actions button {
  font-size:.68rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.14em;
  background:none;
  border:0;
  color:#fff;
  text-decoration:none;
  padding:0;
  display:flex;
  align-items:center;
  gap:13px;
}
.card-actions a:hover,.card-actions button:hover {
  color:var(--gold-soft);
}
.card-actions button {
  color:#bdc5bc;
}
.workshop-card:not(.workshop-feature) .workshop-info {
  min-height:390px;
}
.workshop-card:not(.workshop-feature) .workshop-info h3 {
  font-size:3.2rem;
  margin-top:16px;
}
.workshop-card:not(.workshop-feature) .workshop-description {
  font-size:1.5rem;
}
.photography {
  background:#e4e0d6;
}
.photography .section-heading p {
  color:#5c625c;
}
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  grid-template-rows:repeat(7,90px);
  gap:18px;
}
.gallery-item {
  position:relative;
  overflow:hidden;
  border:0;
  padding:0;
  text-align:left;
  background:#303a35;
  min-width:0;
  min-height:0;
  color:#fff;
}
.gallery-item:after {
  content:'';
  position:absolute;
  inset:40% 0 0;
  background:linear-gradient(0deg,#000a,transparent);
  pointer-events:none;
}
.gallery-item img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.6,.2,1);
}
.gallery-item:hover img,.gallery-item:focus-visible img {
  transform:scale(1.06);
}
.gallery-item span {
  position:absolute;
  bottom:20px;
  left:22px;
  right:22px;
  z-index:2;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.gallery-item-a {
  grid-column:1/6;
  grid-row:1/8;
}
.gallery-item-b {
  grid-column:6/10;
  grid-row:1/5;
}
.gallery-item-c {
  grid-column:10/13;
  grid-row:1/4;
}
.gallery-item-d {
  grid-column:6/10;
  grid-row:5/8;
}
.gallery-item-e {
  grid-column:10/13;
  grid-row:4/8;
}
.services {
  background:var(--paper);
}
.services-layout {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:clamp(35px,7vw,115px);
  align-items:start;
}
.services-visual {
  position:relative;
  max-height:650px;
  overflow:hidden;
}
.services-visual img {
  width:100%;
  height:min(56vw,650px);
  object-fit:cover;
}
.services-visual span {
  position:absolute;
  bottom:23px;
  left:22px;
  color:#fff;
  text-transform:uppercase;
  font-size:.66rem;
  font-weight:700;
  letter-spacing:.19em;
  text-shadow:0 1px 8px #000;
}
.services-content h2 {
  margin-bottom:30px;
}
.service-row {
  border-top:1px solid var(--line);
}
.service-row:last-child {
  border-bottom:1px solid var(--line);
}
.service-row summary {
  list-style:none;
  display:grid;
  grid-template-columns:40px 1fr 20px;
  gap:20px;
  align-items:start;
  padding:24px 0;
  cursor:pointer;
}
.service-row summary::-webkit-details-marker,.faq-row summary::-webkit-details-marker {
  display:none;
}
.service-no {
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.12em;
  color:#9b8665;
  padding-top:8px;
}
.service-title {
  font-family:'Poppins',Arial,sans-serif;
  font-size:clamp(1.5rem,2.3vw,2.4rem);
  line-height:1.08;
  letter-spacing:-.02em;
}
.service-row summary i {
  font-size:.82rem;
  margin-top:9px;
  transition:transform .25s;
}
.service-row[open] summary i,.faq-row[open] summary i {
  transform:rotate(45deg);
}
.service-body {
  padding:0 20px 28px 60px;
  max-width:630px;
  color:#5c6159;
  font-size:.92rem;
}
.service-body p {
  margin:0;
}
.questions {
  border-top:1px solid var(--line);
  margin-top:110px;
  padding-top:75px;
  display:grid;
  grid-template-columns:.7fr 1.3fr;
  gap:60px;
}
.questions-title .eyebrow {
  color:#8c795c;
}
.questions-title h2 {
  margin-top:15px;
}
.faq-row {
  border-bottom:1px solid var(--line);
}
.faq-row summary {
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  cursor:pointer;
  padding:23px 0;
  font-family:'Poppins',Arial,sans-serif;
  font-size:clamp(1.35rem,2vw,2rem);
  line-height:1.1;
}
.faq-row summary i {
  font-size:.8rem;
  flex:none;
  transition:transform .25s;
}
.faq-answer {
  padding:0 30px 24px 0;
  color:#5b615a;
  font-size:.93rem;
}
.faq-answer p {
  margin:0;
}
.faq-answer ul {
  margin:0;
  padding-left:1.2em;
}
.faq-answer li {
  margin-bottom:9px;
}
.founder {
  background:#232824;
}
.founder-layout {
  display:grid;
  grid-template-columns:.86fr 1.14fr;
  gap:clamp(45px,8vw,125px);
  align-items:center;
}
.founder-portrait {
  position:relative;
}
.founder-portrait img {
  width:100%;
  height:auto;
  max-height:670px;
  object-fit:contain;
  object-position:center;
  background:#3f4139;
}
.founder-portrait span {
  position:absolute;
  bottom:0;
  left:0;
  background:var(--paper);
  color:var(--ink);
  font-size:.61rem;
  font-weight:700;
  letter-spacing:.17em;
  text-transform:uppercase;
  padding:12px 18px;
}
.founder-copy h2 {
  margin-bottom:35px;
}
.founder-copy p {
  font-size:.94rem;
  color:#c6cec4;
  margin-bottom:21px;
}
.founder-stats {
  display:flex;
  gap:30px;
  border-top:1px solid #ffffff38;
  margin-top:35px;
  padding-top:28px;
}
.founder-stats div {
  flex:1;
  min-width:0;
}
.founder-stats strong {
  display:block;
  font-family:'Poppins',Arial,sans-serif;
  font-size:3.3rem;
  font-weight:400;
  color:var(--gold-soft);
  line-height:1;
}
.founder-stats span {
  display:block;
  color:#bcc5ba;
  font-size:.69rem;
  line-height:1.3;
  margin-top:8px;
}
.contact {
  background:#dcd7c9;
}
.contact-layout {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:clamp(45px,8vw,125px);
  align-items:start;
}
.contact-copy h2 {
  margin-bottom:30px;
}
.contact-copy p {
  max-width:480px;
  color:#50584f;
}
.contact-methods {
  margin-top:50px;
  max-width:480px;
}
.contact-methods a {
  display:grid;
  grid-template-columns:28px 1fr 18px;
  align-items:center;
  gap:15px;
  padding:20px 0;
  border-top:1px solid #bdb8ab;
  text-decoration:none;
  font-size:.9rem;
}
.contact-methods a:last-child {
  border-bottom:1px solid #bdb8ab;
}
.contact-methods a>i:first-child {
  color:#8c7554;
}
.contact-methods a>i:last-child {
  font-size:.75rem;
}
.contact-methods small {
  display:block;
  color:#787c72;
  font-size:.64rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  margin-bottom:3px;
}
.contact-methods a:hover span {
  text-decoration:underline;
  text-underline-offset:4px;
}
.contact-form {
  background:#f8f6f0;
  border:1px solid #c9c3b5;
  padding:clamp(25px,4vw,55px);
  box-shadow:0 24px 60px #1c211c12;
}
.form-title {
  display:block;
  font-family:'Poppins',Arial,sans-serif;
  font-size:2.15rem;
  margin-bottom:24px;
  line-height:1;
}
.field-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.contact-form label {
  display:block;
  font-size:.7rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.12em;
  margin-bottom:19px;
}
.contact-form input,.contact-form select,.contact-form textarea {
  display:block;
  width:100%;
  margin-top:8px;
  border:1px solid #c9c8be;
  background:transparent;
  color:#242a23;
  border-radius:0;
  padding:13px 14px;
  font-size:.87rem;
  font-weight:400;
  letter-spacing:0;
  text-transform:none;
  outline:0;
  transition:border-color .2s,box-shadow .2s;
}
.contact-form textarea {
  resize:vertical;
  min-height:130px;
}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus {
  border-color:#8c7554;
  box-shadow:0 0 0 2px #bba57e40;
}
.contact-form .invalid {
  border-color:#aa4e39;
  box-shadow:0 0 0 2px #aa4e3933;
}
.honeypot {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%);
}
.form-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.form-bottom span {
  font-size:.7rem;
  color:#6e736b;
}
.form-status {
  margin:15px 0 0;
  font-size:.82rem;
  min-height:1em;
}
.form-status.error {
  color:#9a3e2d;
}
.form-status.ready {
  color:#38654d;
}
.testimonials {
  background:var(--paper);
  color:var(--ink);
}
.testimonials-heading {
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
  gap:clamp(35px,7vw,110px);
  align-items:end;
  margin-bottom:clamp(34px,4.5vw,62px);
}
.testimonials-overline {
  display:block;
  margin-bottom:16px;
  color:#806741;
  font-size:.64rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.testimonials-heading h2 {
  font-size:clamp(2.4rem,3.8vw,4.1rem);
  line-height:1;
}
.testimonials-heading h2 em {
  color:#8d7046;
}
.testimonials-heading p {
  max-width:490px;
  margin:0 0 3px;
  color:#5e625b;
  font-size:.96rem;
  line-height:1.75;
}
.testimonials-grid {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:clamp(16px,2vw,28px);
  align-items:start;
}
.testimonial-card {
  min-width:0;
  border:1px solid #b9ad9a;
  background:#e8e2d7;
  box-shadow:0 18px 42px #312a2018;
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease;
}
.testimonial-card:hover,
.testimonial-card:focus-within {
  transform:translateY(-6px);
  border-color:#907652;
  box-shadow:0 25px 55px #312a202b;
}
.testimonial-video {
  display:flex;
  align-items:center;
  justify-content:center;
  aspect-ratio:9/16;
  overflow:hidden;
  background:#171918;
  border-bottom:1px solid #b9ad9a;
}
.testimonial-video video {
  display:block;
  width:100%;
  height:100%;
  background:#171918;
  object-fit:contain;
}
.testimonial-meta {
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px 18px;
  color:#50493f;
}
.testimonial-meta span {
  color:#8d7046;
  font-size:.6rem;
  font-weight:700;
  letter-spacing:.15em;
}
.testimonial-meta strong {
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.site-footer {
  background:#111411;
  color:#e9e8e0;
  padding:75px clamp(22px,7vw,112px) 28px;
}
.footer-main {
  display:grid;
  grid-template-columns:2.1fr 1fr 1fr 1fr;
  gap:clamp(20px,4vw,70px);
  padding-bottom:85px;
}
.footer-brand>a {
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
  font-family:'Poppins',Arial,sans-serif;
  font-size:2rem;
}
.footer-brand img {
  width:60px;
  height:60px;
  object-fit:cover;
  border-radius:50%;
  background:#fff;
}
.footer-brand p {
  max-width:380px;
  color:#aeb7aa;
  font-size:.84rem;
  margin:20px 0 0;
}
.footer-column h2 {
  font-family:'Poppins',Arial,sans-serif;
  font-size:.67rem;
  font-weight:700;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:var(--gold-soft);
  margin:10px 0 22px;
}
.footer-column a {
  display:block;
  color:#d8ded5;
  text-decoration:none;
  font-size:.83rem;
  margin:0 0 12px;
}
.footer-column a:hover {
  color:var(--gold-soft);
}
.footer-column a i {
  width:20px;
  color:var(--gold-soft);
}
.footer-bottom {
  border-top:1px solid #ffffff2a;
  display:flex;
  justify-content:space-between;
  gap:25px;
  padding-top:24px;
  color:#a5aea4;
  font-size:.67rem;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.footer-bottom a {
  text-decoration:none;
}
.footer-bottom a:hover {
  color:#fff;
}
.media-dialog {
  border:0;
  padding:45px 24px 20px;
  background:#151916;
  color:#fff;
  box-shadow:0 25px 80px #000a;
  max-width:min(90vw,900px);
  max-height:90vh;
  text-align:center;
}
.media-dialog::backdrop {
  background:#060807e6;
  backdrop-filter:blur(8px);
}
.media-dialog img {
  max-width:100%;
  max-height:calc(90vh - 105px);
  width:auto;
  height:auto;
  object-fit:contain;
  margin:auto;
}
.media-dialog p {
  font-size:.7rem;
  letter-spacing:.17em;
  text-transform:uppercase;
  margin:14px 0 0;
}
.dialog-close {
  position:absolute;
  right:10px;
  top:7px;
  background:none;
  border:0;
  color:#fff;
  padding:8px 11px;
  font-size:1.1rem;
}
[data-reveal] {
  opacity:1;
  transform:none;
}
[data-reveal].in-view {
  animation:lift-in .7s both;
}
@keyframes lift-in {
  from {
    opacity:.65;
    transform:translateY(18px);
  }
  to {
    opacity:1;
    transform:none;
  }
}
@media(max-width:1050px) {
  .site-nav {
    gap:17px;
  }
  .site-nav a {
    font-size:.65rem;
  }
  .workshop-feature {
    grid-template-columns:1fr 1fr;
  }
  .workshop-info {
    padding:30px;
  }
  .gallery-grid {
    grid-template-rows:repeat(7,75px);
  }
  .founder-stats {
    gap:15px;
  }
}
@media(max-width:1100px) {
  .site-header {
    height:76px;
    padding:0 22px;
  }
  .brand img {
    width:42px;
    height:42px;
  }
  .brand span {
    font-size:1.5rem;
  }
  .menu-toggle {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:6px;
    align-items:center;
    width:44px;
    height:44px;
    border:1px solid #ffffff80;
    background:#111b;
    color:#fff;
    z-index:60;
  }
  .menu-toggle span {
    display:block;
    width:18px;
    height:1px;
    background:currentColor;
    transition:transform .25s;
  }
  .menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(3.5px) rotate(45deg);
  }
  .menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-3.5px) rotate(-45deg);
  }
  .site-nav {
    position:absolute;
    top:76px;
    left:0;
    right:0;
    padding:16px 22px 26px;
    background:#161813f5;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    opacity:0;
    visibility:hidden;
    transform:translateY(-10px);
    transition:opacity .25s,transform .25s,visibility .25s;
  }
  .site-nav.open {
    opacity:1;
    visibility:visible;
    transform:none;
  }
  .site-nav a {
    padding:13px 0;
    font-size:.77rem;
  }
  .site-nav .nav-contact {
    justify-content:space-between;
    width:100%;
    margin-top:10px;
  }
  .hero-content {
    left:32px;
    width:min(650px,78vw);
  }
  .hero h1 {
    font-size:clamp(3.8rem,8vw,5.5rem);
  }
  .hero-pane-one {
    display:none;
  }
  .hero-images {
    grid-template-columns:1fr 1fr;
  }
  .about-intro,.about-story,.services-layout,.founder-layout,.contact-layout {
    grid-template-columns:1fr;
  }
  .testimonials-heading {
    grid-template-columns:1fr;
    gap:18px;
  }
  .testimonials-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .testimonial-card,
  .testimonial-card:nth-child(4) {
    grid-column:auto;
  }
  .about-intro {
    gap:30px;
  }
  .about-heading h2 {
    max-width:650px;
  }
  .about-lead {
    max-width:700px;
  }
  .about-story {
    margin-top:65px;
    gap:35px;
  }
  .about-visual {
    max-width:700px;
  }
  .about-visual img {
    height:500px;
  }
  .about-quote {
    margin-top:70px;
  }
  .workshop-feature {
    min-height:450px;
  }
  .workshop-card:not(.workshop-feature) .workshop-info {
    min-height:400px;
  }
  .photography .section-heading {
    display:block;
  }
  .photography .section-heading p {
    margin-top:22px;
  }
  .gallery-grid {
    grid-template-rows:repeat(7,65px);
    gap:12px;
  }
  .services-visual {
    max-width:560px;
  }
  .services-visual img {
    height:480px;
  }
  .questions {
    margin-top:85px;
  }
  .founder-portrait {
    max-width:620px;
  }
  .founder-copy {
    max-width:700px;
  }
  .contact-copy {
    max-width:700px;
  }
  .footer-main {
    grid-template-columns:1.5fr 1fr 1fr;
    gap:35px;
  }
  .footer-column:last-child {
    grid-column:2/4;
  }
}
@media(max-width:820px) and (min-width:621px) {
  .testimonials-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:620px) {
  .hero {
    min-height:0;
    height:100svh;
    max-height:none;
  }
  .hero-images {
    display:block;
  }
  .hero-pane {
    position:absolute;
    inset:0;
  }
  .hero-pane-two,.hero-pane-three {
    display:none;
  }
  .hero-pane-one {
    display:block;
  }
  .hero-pane-one img {
    object-position:50% 45%;
  }
  .hero-vignette {
    background:linear-gradient(0deg,#080c0cf2 0%,#080c0cb8 34%,#080c0c38 72%,#080c0c70 100%);
  }
  .hero-content {
    top:auto;
    bottom:95px;
    left:22px;
    right:22px;
    transform:none;
    width:auto;
  }
  .hero h1 {
    font-size:clamp(3.45rem,13vw,5rem);
    margin-bottom:17px;
  }
  .hero-eyebrow {
    font-size:.58rem;
    line-height:1.5;
    max-width:350px;
  }
  .hero-support {
    font-size:.9rem;
    max-width:390px;
    margin-bottom:22px;
  }
  .hero-actions {
    gap:8px;
  }
  .button {
    min-height:45px;
    padding:10px 13px;
    gap:12px;
    font-size:.61rem;
  }
  .hero-bottom {
    left:22px;
    right:22px;
    bottom:17px;
    grid-template-columns:1fr auto;
    align-items:center;
  }
  .hero-bottom-note {
    font-size:.58rem;
    max-width:190px;
  }
  .hero-slide-ui {
    gap:8px;
  }
  .hero-slide-ui button {
    width:30px;
    height:30px;
  }
  .scroll-cue {
    display:none;
  }
  .section {
    padding:75px 22px;
  }
  .section-top {
    gap:12px;
    margin-bottom:30px;
  }
  .section-top .eyebrow {
    font-size:.58rem;
  }
  .section-tail {
    display:none;
  }
  .section h2 {
    font-size:clamp(2.65rem,11vw,4rem);
  }
  .about-heading .mini-mark {
    margin-top:12px;
  }
  .about-lead p {
    font-size:1.65rem;
  }
  .about-story {
    margin-top:45px;
  }
  .about-visual img {
    height:420px;
  }
  .about-text p {
    margin-bottom:20px;
  }
  .about-quote {
    padding-left:36px;
    margin-top:60px;
  }
  .about-quote .quote-icon {
    left:7px;
    font-size:3rem;
    top:0;
  }
  .about-quote p {
    font-size:1.8rem;
  }
  .section-heading {
    display:block;
    margin-bottom:32px;
  }
  .section-heading p {
    margin-top:18px;
    max-width:500px;
  }
  .workshop-grid {
    grid-template-columns:1fr;
    gap:20px;
  }
  .workshop-feature {
    grid-column:auto;
    display:block;
    min-height:0;
  }
  .workshop-feature .workshop-art {
    height:360px;
  }
  .workshop-feature .workshop-art img {
    position:static;
  }
  .workshop-info {
    padding:27px;
  }
  .workshop-info h3,.workshop-card:not(.workshop-feature) .workshop-info h3 {
    font-size:3.3rem;
  }
  .workshop-card:not(.workshop-feature) .workshop-info {
    min-height:0;
  }
  .poster-art {
    height:330px;
  }
  .workshop-description,.workshop-card:not(.workshop-feature) .workshop-description {
    font-size:1.45rem;
  }
  .workshop-info dl {
    margin:0;
  }
  .gallery-grid {
    grid-template-columns:1fr 1fr;
    grid-template-rows:repeat(8,145px);
    gap:9px;
  }
  .gallery-item-a {
    grid-column:1;
    grid-row:1/5;
  }
  .gallery-item-b {
    grid-column:2;
    grid-row:1/3;
  }
  .gallery-item-c {
    grid-column:2;
    grid-row:3/5;
  }
  .gallery-item-d {
    grid-column:1;
    grid-row:5/9;
  }
  .gallery-item-e {
    grid-column:2;
    grid-row:5/9;
  }
  .gallery-item span {
    left:12px;
    right:12px;
    bottom:12px;
    font-size:.55rem;
  }
  .services-visual img {
    height:440px;
  }
  .services-content h2 {
    margin:28px 0 20px;
  }
  .service-row summary {
    grid-template-columns:25px 1fr 17px;
    gap:9px;
  }
  .service-body {
    padding-left:34px;
  }
  .questions {
    grid-template-columns:1fr;
    gap:25px;
    margin-top:65px;
    padding-top:50px;
  }
  .founder-portrait span {
    font-size:.55rem;
  }
  .founder-copy h2 {
    margin:30px 0;
  }
  .founder-stats strong {
    font-size:2.5rem;
  }
  .founder-stats span {
    font-size:.58rem;
  }
  .contact-layout {
    gap:35px;
  }
  .testimonials-heading {
    margin-bottom:30px;
  }
  .testimonials-heading h2 {
    font-size:clamp(2.25rem,10vw,3.25rem);
  }
  .testimonials-heading p {
    font-size:.9rem;
    line-height:1.65;
  }
  .testimonials-grid {
    grid-template-columns:none;
    grid-auto-flow:column;
    grid-auto-columns:min(82vw,300px);
    gap:20px;
    overflow-x:auto;
    padding:2px 22px 18px 0;
    scroll-snap-type:x mandatory;
    overscroll-behavior-inline:contain;
    scrollbar-width:none;
  }
  .testimonials-grid::-webkit-scrollbar {
    display:none;
  }
  .testimonial-card {
    scroll-snap-align:start;
  }
  .testimonial-card:hover,
  .testimonial-card:focus-within {
    transform:none;
  }
  .contact-copy h2 {
    font-size:clamp(2.8rem,10vw,4rem);
  }
  .contact-methods {
    margin-top:30px;
  }
  .contact-form {
    padding:26px 20px;
  }
  .field-row {
    grid-template-columns:1fr;
    gap:0;
  }
  .form-bottom {
    align-items:flex-start;
    flex-direction:column;
  }
  .footer-main {
    grid-template-columns:1fr 1fr;
    gap:35px;
  }
  .footer-brand {
    grid-column:1/-1;
  }
  .footer-column:last-child {
    grid-column:auto;
  }
  .footer-bottom {
    flex-wrap:wrap;
  }
  .footer-bottom span:nth-child(2) {
    display:none;
  }
}
@media(max-width:390px) {
  .hero h1 {
    font-size:3.25rem;
  }
  .hero-actions .button {
    font-size:.55rem;
  }
  .hero-bottom-note {
    display:none;
  }
  .hero-bottom {
    display:flex;
    justify-content:center;
  }
  .workshop-info dl div {
    font-size:.7rem;
  }
  .founder-stats {
    gap:9px;
  }
  .founder-stats strong {
    font-size:2.1rem;
  }
}
@media(prefers-reduced-motion:reduce) {
  :root {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    animation-duration:.01ms!important;
    transition-duration:.01ms!important;
  }
  html {
    scroll-behavior:auto;
  }
}
