:root {
  --ivory: #f6efe7;
  --paper: #fbf7f1;
  --ink: #17131a;
  --plum: #332534;
  --plum-deep: #211923;
  --rose: #9d6177;
  --rose-soft: #d8a9b9;
  --lavender: #a7afd9;
  --gold: #b08a58;
  --gold-soft: #ddc6a1;
  --line: rgba(51, 37, 52, .16);
  --shadow: 0 24px 70px rgba(35, 25, 36, .14);
  --display: 'Cinzel Decorative', 'Palatino Linotype', Palatino, Georgia, serif;
  --serif: 'Cormorant Garamond', 'Iowan Old Style', Georgia, serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 8% 4%, rgba(221, 198, 161, .22), transparent 29rem),
    radial-gradient(circle at 91% 19%, rgba(157, 97, 119, .14), transparent 26rem),
    var(--ivory);
  font-family: var(--sans);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
button, input, textarea { font: inherit; }

.skip-link { position:absolute; left:-9999px; top:8px; background:var(--ink); color:#fff; padding:.7rem 1rem; z-index:999; }
.skip-link:focus { left:8px; }

.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(246, 239, 231, .93);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(51,37,52,.10);
}
.header-inner {
  width: min(1220px, calc(100% - 42px));
  min-height: 92px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1.5rem;
}
.brand-mark { display:flex; align-items:center; justify-content:center; text-decoration:none; }
.brand-mark img { width: 82px; height: 82px; object-fit: contain; }
.nav { display:flex; gap:1.4rem; align-items:center; }
.nav-right { justify-content:flex-end; }
.nav a { text-decoration:none; text-transform:uppercase; letter-spacing:.13em; font-size:.7rem; font-weight:600; position:relative; }
.nav a:not(.shop-link)::after { content:''; position:absolute; left:0; right:100%; bottom:-.35rem; height:1px; background:var(--gold); transition:right .2s ease; }
.nav a:hover::after, .nav a[aria-current='page']::after { right:0; }
.shop-link { border:1px solid var(--ink); padding:.72rem 1rem; }
.shop-link:hover { background:var(--ink); color:var(--ivory); }
.menu-button { display:none; }

.container { width:min(1180px, calc(100% - 40px)); margin:0 auto; }
.narrow { width:min(780px, calc(100% - 40px)); margin:0 auto; }

.eyebrow, .kicker {
  text-transform:uppercase;
  letter-spacing:.19em;
  font-size:.7rem;
  font-weight:600;
  color:var(--rose);
}
.eyebrow { display:inline-flex; align-items:center; gap:.65rem; }
.eyebrow::before { content:'✦'; color:var(--gold); font-family:serif; }

h1, h2, h3 { margin:0; font-family:var(--serif); font-weight:500; line-height:1.02; }
h1 { font-size:clamp(3.7rem, 7.4vw, 7.9rem); letter-spacing:-.035em; }
h2 { font-size:clamp(2.8rem, 5vw, 5.1rem); letter-spacing:-.025em; }
h3 { font-size:clamp(1.7rem, 2.5vw, 2.25rem); }
.display-title { font-family:var(--display); font-weight:400; letter-spacing:.015em; }

.hero { min-height:760px; display:grid; align-items:center; padding:clamp(3rem, 7vw, 7rem) 0; overflow:hidden; }
.hero-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem, 6vw, 6rem); align-items:center; }
.hero-copy h1 { margin:1rem 0 1.3rem; }
.hero-copy p { max-width:620px; font-family:var(--serif); font-size:clamp(1.35rem, 2vw, 1.65rem); line-height:1.45; color:#554850; }
.button-row { display:flex; gap:.85rem; flex-wrap:wrap; margin-top:2rem; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:.82rem 1.3rem; border:1px solid var(--ink); background:transparent; color:var(--ink); text-decoration:none; text-transform:uppercase; letter-spacing:.13em; font-size:.7rem; font-weight:600; transition:.2s ease; cursor:pointer; }
.btn-primary { background:var(--ink); color:var(--ivory); }
.btn:hover { transform:translateY(-2px); box-shadow:0 9px 24px rgba(35,25,31,.11); }
.btn-primary:hover { background:var(--plum); }
.btn-light { border-color:var(--ivory); color:var(--ivory); }

.hero-showcase { position:relative; min-height:590px; display:grid; place-items:center; }
.hero-showcase::before, .hero-showcase::after { content:''; position:absolute; border:1px solid rgba(176,138,88,.48); border-radius:50%; width:420px; height:540px; transform:rotate(8deg); }
.hero-showcase::after { width:350px; height:470px; transform:rotate(-7deg); opacity:.55; }
.hero-main { width:min(445px, 77vw); position:relative; z-index:3; padding:.72rem; background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow); transform:rotate(-1.4deg); }
.hero-main img { width:100%; aspect-ratio:1; object-fit:cover; }
.hero-main figcaption { font-family:var(--display); font-size:.82rem; letter-spacing:.04em; text-align:center; padding:.75rem .35rem .25rem; }
.hero-mini { position:absolute; z-index:4; width:155px; padding:.45rem; background:var(--paper); border:1px solid var(--line); box-shadow:0 18px 50px rgba(35,25,31,.18); }
.hero-mini img { width:100%; aspect-ratio:1; object-fit:cover; }
.hero-mini.one { right:-2%; top:7%; transform:rotate(5deg); }
.hero-mini.two { left:-3%; bottom:4%; transform:rotate(-6deg); }

.section { padding:clamp(4.5rem, 9vw, 8.5rem) 0; }
.section-paper { background:rgba(251,247,241,.76); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.section-dark { background:linear-gradient(145deg, var(--plum), var(--plum-deep)); color:var(--ivory); }
.section-heading { margin-bottom:clamp(2rem, 5vw, 4rem); }
.section-heading p { max-width:700px; color:#64565e; }
.kicker { margin-bottom:.75rem; }

.gallery-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:1.35rem; }
.gallery-tile { text-decoration:none; }
.gallery-tile figure { margin:0; padding:.55rem; background:var(--paper); border:1px solid var(--line); box-shadow:0 15px 45px rgba(35,25,31,.08); transition:.22s ease; }
.gallery-tile:hover figure { transform:translateY(-5px); box-shadow:0 24px 55px rgba(35,25,31,.13); }
.gallery-tile img { width:100%; aspect-ratio:1; object-fit:cover; }
.gallery-tile figcaption { padding:.9rem .3rem .3rem; }
.gallery-tile strong { display:block; font-family:var(--display); font-size:.85rem; font-weight:400; }
.gallery-tile span { display:block; margin-top:.2rem; color:#6b5d65; font-size:.76rem; }

.story-grid { display:grid; grid-template-columns:.86fr 1.14fr; gap:clamp(2.5rem, 7vw, 6.5rem); align-items:center; }
.story-visual { position:relative; }
.story-visual::before { content:''; position:absolute; inset:8% -7% -8% 10%; border:1px solid rgba(176,138,88,.38); z-index:0; }
.story-visual img { position:relative; z-index:1; width:100%; box-shadow:var(--shadow); }
.story-copy p { color:#584b53; }
.signature { font-family:var(--serif); font-size:1.55rem; font-style:italic; color:var(--rose); }

.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.feature { min-height:250px; padding:2rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.feature-number { font-family:var(--display); color:var(--gold); font-size:1rem; margin-bottom:2.3rem; }
.feature p { color:#64565e; font-size:.9rem; }

.newsletter-wrap { position:relative; max-width:940px; margin:0 auto; border:1px solid rgba(221,198,161,.52); padding:clamp(2.2rem, 6vw, 5rem); text-align:center; }
.newsletter-wrap::before, .newsletter-wrap::after { content:'✦'; position:absolute; color:var(--gold-soft); font-family:serif; font-size:1.1rem; }
.newsletter-wrap::before { left:1rem; top:1rem; }
.newsletter-wrap::after { right:1rem; bottom:1rem; }
.newsletter-wrap p { max-width:650px; margin:1rem auto 1.7rem; color:#d9cfd4; }
.kit-form-slot { max-width:680px; margin:1.5rem auto 0; padding:1rem; border:1px dashed rgba(221,198,161,.55); }
.kit-form-preview { display:grid; grid-template-columns:1fr auto; gap:.7rem; }
.kit-form-preview span { min-height:50px; display:flex; align-items:center; padding:0 1rem; border:1px solid rgba(255,255,255,.24); color:#c9bcc3; text-align:left; font-size:.82rem; }
.kit-form-preview b { min-height:50px; display:flex; align-items:center; padding:0 1.2rem; background:var(--ivory); color:var(--ink); text-transform:uppercase; letter-spacing:.12em; font-size:.68rem; }
.kit-form-help { margin:.7rem 0 0 !important; color:#a99ca3 !important; font-size:.72rem; }

.page-hero { padding:clamp(4.7rem, 9vw, 8rem) 0 3rem; text-align:center; }
.page-hero h1 { font-size:clamp(3.6rem, 8vw, 7.2rem); }
.page-hero p { max-width:730px; margin:1rem auto 0; font-family:var(--serif); font-size:1.5rem; color:#5e5158; }

.portfolio-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:1.5rem; align-items:start; }
.portfolio-card { grid-column:span 4; }
.portfolio-card:nth-child(2), .portfolio-card:nth-child(5) { transform:translateY(2.8rem); }
.portfolio-photo { margin:0; padding:.55rem; background:var(--paper); border:1px solid var(--line); box-shadow:0 17px 48px rgba(35,25,31,.09); }
.portfolio-photo img { width:100%; aspect-ratio:1; object-fit:cover; }
.portfolio-meta { padding:1rem .2rem 0; }
.portfolio-meta h3 { font-family:var(--display); font-size:1rem; font-weight:400; line-height:1.4; }
.portfolio-meta p { margin:.35rem 0 0; color:#6b5d64; font-size:.8rem; }

.about-intro { display:grid; grid-template-columns:1fr .95fr; gap:clamp(2.5rem, 7vw, 6rem); align-items:center; }
.about-photo { padding:.6rem; background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow); transform:rotate(1.2deg); }
.about-photo img { width:100%; }
.about-copy p { color:#584b53; }
.about-copy p:first-of-type::first-letter { float:left; font-family:var(--display); font-size:4.2rem; line-height:.75; padding:.65rem .6rem 0 0; color:var(--rose); }
.values { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:4rem; }
.value { border-top:1px solid var(--gold); padding-top:1.4rem; }
.value p { color:#64565e; }

.contact-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2rem, 8vw, 7rem); align-items:start; }
.contact-details { padding:2.3rem; background:linear-gradient(155deg,var(--plum),var(--plum-deep)); color:var(--ivory); }
.contact-details p { color:#d8cdd2; }
.contact-details a { color:var(--ivory); text-underline-offset:.25rem; }
.contact-list { list-style:none; padding:0; margin:2rem 0 0; }
.contact-list li { padding:1rem 0; border-top:1px solid rgba(255,255,255,.15); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.field { margin-bottom:1.1rem; }
.field label { display:block; margin-bottom:.45rem; text-transform:uppercase; letter-spacing:.11em; font-size:.66rem; font-weight:600; }
.field input, .field textarea { width:100%; padding:.9rem 1rem; border:1px solid var(--line); background:rgba(251,247,241,.76); color:var(--ink); outline:none; }
.field input:focus, .field textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(176,138,88,.10); }
.field textarea { min-height:180px; resize:vertical; }
.form-note { font-size:.78rem; color:#6b5e65; }

.site-footer { background:#17131a; color:var(--ivory); padding:4rem 0 2rem; }
.footer-grid { display:grid; grid-template-columns:1.4fr .8fr .8fr; gap:2rem; }
.footer-logo { width:110px; margin-bottom:.8rem; }
.footer-copy { color:#bfb3b8; max-width:480px; font-size:.9rem; }
.footer-heading { text-transform:uppercase; letter-spacing:.15em; font-size:.65rem; color:var(--gold-soft); margin-bottom:1rem; }
.footer-links { display:grid; gap:.55rem; }
.footer-links a { color:#e8dde1; text-decoration:none; font-size:.88rem; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.12); margin-top:3rem; padding-top:1.4rem; color:#8e8287; font-size:.72rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }

.reveal { opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity:1; transform:none; }

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

@media (max-width: 920px) {
  .header-inner { grid-template-columns:auto 1fr auto; }
  .brand-mark { grid-column:2; }
  .brand-mark img { width:72px; height:72px; }
  .menu-button { display:inline-flex; grid-column:1; grid-row:1; background:none; border:0; font-size:.7rem; text-transform:uppercase; letter-spacing:.13em; cursor:pointer; padding:.6rem 0; }
  .nav-left { position:absolute; top:92px; left:0; right:0; background:var(--ivory); border-bottom:1px solid var(--line); padding:1.5rem 20px; display:none; flex-direction:column; align-items:flex-start; }
  .nav-left.open { display:flex; }
  .nav-right { display:none; }
  .hero { min-height:auto; }
  .hero-grid, .story-grid, .about-intro, .contact-grid { grid-template-columns:1fr; }
  .hero-copy { text-align:center; }
  .hero-copy p { margin-left:auto; margin-right:auto; }
  .button-row { justify-content:center; }
  .hero-showcase { min-height:570px; margin-top:1rem; }
  .hero-mini.one { right:1%; }
  .hero-mini.two { left:1%; }
  .gallery-strip { grid-template-columns:1fr 1fr; }
  .gallery-strip .gallery-tile:last-child { grid-column:1 / -1; width:calc(50% - .675rem); margin:0 auto; }
  .feature-grid { grid-template-columns:1fr; }
  .portfolio-card { grid-column:span 6; }
  .portfolio-card:nth-child(2), .portfolio-card:nth-child(5) { transform:none; }
  .values { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-grid > :first-child { grid-column:1 / -1; }
}

@media (max-width: 640px) {
  .header-inner, .container, .narrow { width:min(100% - 28px, 1180px); }
  .header-inner { min-height:82px; }
  .nav-left { top:82px; }
  .brand-mark img { width:64px; height:64px; }
  h1 { font-size:clamp(3.15rem, 16vw, 5.3rem); }
  .hero { padding-top:3.4rem; }
  .hero-showcase { min-height:450px; }
  .hero-showcase::before { width:300px; height:390px; }
  .hero-showcase::after { width:250px; height:330px; }
  .hero-main { width:min(320px, 82vw); }
  .hero-mini { width:105px; }
  .gallery-strip { grid-template-columns:1fr; }
  .gallery-strip .gallery-tile:last-child { grid-column:auto; width:auto; margin:0; }
  .portfolio-card { grid-column:span 12; }
  .kit-form-preview { grid-template-columns:1fr; }
  .kit-form-preview b { justify-content:center; }
  .form-row { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-grid > :first-child { grid-column:auto; }
}

/* KIT NEWSLETTER FORM */

.moonglow-kit-form {
  margin-top: 28px;
}

.moonglow-fields {
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: 10px;
  flex-wrap: wrap;
}

.moonglow-kit-form .formkit-input {
  min-width: 280px;
  max-width: 420px;
  width: 100%;
  height: 54px;
  padding: 0 18px;
  border: 1px solid rgba(232, 205, 182, 0.45);
  border-radius: 999px;
  background: rgba(255, 248, 243, 0.08);
  color: #f6e8df;
  font-size: 16px;
  font-family: inherit;
  outline: none;
  box-shadow: none;
}

.moonglow-kit-form .formkit-input::placeholder {
  color: rgba(246, 232, 223, 0.72);
}

.moonglow-kit-form .formkit-input:focus {
  border-color: #e8cdb6;
  background: rgba(255, 248, 243, 0.12);
  box-shadow: 0 0 0 3px rgba(232, 205, 182, 0.14);
}

.moonglow-subscribe {
  height: 54px;
  padding: 0 26px;
  border: 1px solid #e8cdb6;
  border-radius: 999px;
  background: linear-gradient(180deg, #f2d9c6 0%, #d9b293 100%);
  color: #2d1d2b;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}

.moonglow-subscribe:hover {
  transform: translateY(-1px);
  filter: brightness(1.03);
  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.22);
}

.moonglow-subscribe:active {
  transform: translateY(0);
}

.moonglow-subscribe span {
  white-space: nowrap;
}

.formkit-alert {
  list-style: none;
  margin: 0 0 14px;
  padding: 0;
  color: #ffcabf;
  font-size: 14px;
}

.formkit-alert:empty {
  display: none;
}

@media (max-width: 640px) {
  .moonglow-fields {
    flex-direction: column;
    align-items: center;
  }

  .moonglow-kit-form .formkit-input,
  .moonglow-subscribe {
    width: 100%;
    max-width: 420px;
  }
}
.about-main-video {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
/* HEADER SOCIAL ICONS */

.nav-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 24px;
}

.header-socials {
  display: flex;
  align-items: center;
  gap: 16px;
}

.header-socials a {
  color: #2f222d;
  font-size: 17px;
  text-decoration: none;
  transition: color 0.2s ease, transform 0.2s ease;
}

.header-socials a:hover {
  color: #a9687f;
  transform: translateY(-2px);
}

.header-socials i {
  display: block;
}

.footer-brand-copy {
  margin-top: 22px;
}

.footer-script {
  max-width: 620px;
  margin: 0;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 25px;
  line-height: 1.45;
  font-style: italic;
  font-weight: 400;
  color: #ead7cd;
}

.footer-location {
  margin-top: 16px;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #c8969f;
}
/* ALIGN FOOTER EXPLORE + SHOP COLUMNS */

@media (min-width: 921px) {
  .footer-grid > :nth-child(2),
  .footer-grid > :nth-child(3) {
    padding-top: 90px;
  }
}