:root {
  --ink: #101010;
  --paper: #f7f6f3;
  --white: #ffffff;
  --muted: #73706b;
  --line: rgba(17,17,17,.13);
  --dark: #111211;
  --serif: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --content: min(1240px, calc(100vw - 64px));
  --header-h: 78px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }

.site-header {
  height: var(--header-h);
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid rgba(0,0,0,.08);
  position: sticky;
  top: 0;
  z-index: 100;
  backdrop-filter: blur(16px);
}
.header-inner {
  width: var(--content);
  height: 100%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
.brand { display: inline-flex; align-items: center; gap: 13px; white-space: nowrap; }
.brand img { width: 42px; height: auto; }
.brand span { font-size: 25px; line-height: 1; font-weight: 850; letter-spacing: .045em; }
.desktop-nav { display: flex; align-items: center; gap: clamp(28px, 3vw, 48px); }
.nav-link {
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .095em;
  text-transform: uppercase;
  position: relative;
}
.nav-link::after {
  content: "";
  position: absolute;
  height: 1px;
  left: 0;
  right: 100%;
  bottom: -7px;
  background: currentColor;
  transition: right .22s ease;
}
.nav-link:hover::after, .nav-link[aria-current="page"]::after { right: 0; }
.quote-button {
  border: 1px solid rgba(0,0,0,.45);
  padding: 13px 18px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .095em;
  text-transform: uppercase;
  transition: .22s ease;
  white-space: nowrap;
}
.quote-button:hover { background: #111; color: #fff; border-color: #111; }
.mobile-toggle { display:none; border:0; background:transparent; padding:8px; cursor:pointer; }
.mobile-toggle span { display:block; width:25px; height:1.5px; background:#111; margin:6px 0; }
.mobile-nav { display:none; }

/* Home */
.home-main { background: var(--dark); }
.hero {
  min-height: calc(100svh - var(--header-h));
  display: grid;
  place-items: center;
  position: relative;
  background: #111 url('../images/hero.webp') center center / cover no-repeat;
  overflow: hidden;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(5,6,5,.92) 0%, rgba(5,6,5,.70) 31%, rgba(5,6,5,.22) 60%, rgba(5,6,5,.08) 100%),
    linear-gradient(0deg, rgba(0,0,0,.22), rgba(0,0,0,.04));
}
.hero-content {
  width: var(--content);
  position: relative;
  color: white;
  padding: 70px 0 90px;
}
.hero-copy { max-width: 620px; }
.hero h1 {
  font-family: var(--serif);
  font-size: clamp(58px, 6.2vw, 104px);
  line-height: .96;
  letter-spacing: -.045em;
  font-weight: 400;
  margin: 0 0 30px;
}
.hero p {
  font-size: clamp(17px, 1.4vw, 22px);
  line-height: 1.5;
  margin: 0 0 38px;
  color: rgba(255,255,255,.9);
}
.hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 26px;
  background: #f3ede4;
  color: #171717;
  padding: 17px 24px;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .1em;
  text-transform: uppercase;
  transition: transform .2s ease, background .2s ease;
}
.hero-cta:hover { transform: translateY(-2px); background: #fff; }

.editorial {
  background: #101110;
  color: white;
  padding: 42px 0 0;
}
.editorial-inner { width: min(1360px, calc(100vw - 64px)); margin: 0 auto; }
.feature-row {
  min-height: 430px;
  display: grid;
  grid-template-columns: 34% 66%;
  border: 1px solid rgba(255,255,255,.19);
  overflow: hidden;
}
.feature-row + .feature-row { margin-top: 14px; }
.feature-row.reverse { grid-template-columns: 61% 39%; }
.feature-media { min-height: 430px; overflow:hidden; }
.feature-media img { width:100%; height:100%; object-fit:cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.feature-row:hover .feature-media img { transform: scale(1.018); }
.feature-copy {
  padding: clamp(48px, 5.7vw, 90px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  background: linear-gradient(140deg, #151615, #0d0e0d);
}
.feature-copy h2 {
  font-family: var(--serif);
  font-size: clamp(40px, 3.8vw, 62px);
  line-height: 1.02;
  letter-spacing: -.035em;
  font-weight: 400;
  margin: 0 0 24px;
}
.feature-copy p {
  margin:0;
  max-width: 390px;
  color: rgba(255,255,255,.68);
  font-size: 15px;
  line-height:1.7;
}

/* Footer */
.site-footer {
  color: #fff;
  background-image: linear-gradient(rgba(9,10,9,.9), rgba(9,10,9,.92)), url('../images/footer-texture.webp');
  background-size: cover;
  background-position: center;
  border-top: 1px solid rgba(255,255,255,.12);
}
.footer-inner {
  width: var(--content);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.05fr 1.15fr .75fr 1fr;
  gap: clamp(34px, 5vw, 80px);
  padding: 62px 0 58px;
  align-items:start;
}
.footer-brand { display:flex; flex-direction:column; align-items:flex-start; gap:16px; }
.footer-brand img { width: 76px; height: auto; }
.footer-brand-name { font-size:24px; font-weight:800; letter-spacing:.045em; }
.footer-title { font-size:17px; font-weight:700; margin:0 0 19px; }
.footer-text, .footer-links a, .contact-row {
  font-size:14px;
  line-height:1.75;
  color:rgba(255,255,255,.79);
}
.footer-links { display:flex; flex-direction:column; gap:7px; }
.footer-links a:hover { color:#fff; }
.contact-row { display:flex; align-items:center; gap:10px; }
.contact-row svg { flex:0 0 auto; }
.socials { display:flex; gap:14px; margin-top:18px; }
.socials a { width:30px; height:30px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.28); transition:.2s; }
.socials a:hover { background:#fff; color:#111; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.12); }
.footer-bottom-inner { width:var(--content); margin:0 auto; padding:17px 0; color:rgba(255,255,255,.48); font-size:12px; }

/* Products */
.products-body { background: #f8f7f4; }
.collection-main { min-height:70vh; padding: 72px 0 88px; }
.collection-inner { width: var(--content); margin:0 auto; }
.collection-intro { margin-bottom:54px; }
.collection-intro h1 {
  margin:0 0 12px;
  font-family:var(--serif);
  font-weight:400;
  letter-spacing:-.035em;
  font-size:clamp(52px,5vw,78px);
  line-height:1;
}
.collection-intro p { margin:0; color:#605e5a; font-size:16px; }
.collection-group + .collection-group { margin-top:68px; }
.collection-group h2 {
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(32px,3vw,43px);
  margin:0 0 25px;
  letter-spacing:-.025em;
}
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 24px; }
.product-card {
  background:#fff;
  border:1px solid rgba(20,20,20,.12);
  overflow:hidden;
  transition:transform .25s ease, box-shadow .25s ease;
}
.product-card:hover { transform:translateY(-4px); box-shadow:0 16px 36px rgba(0,0,0,.08); }
.product-image { aspect-ratio: 1.92 / 1; overflow:hidden; background:#ddd; }
.product-image img { width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.product-card:hover .product-image img { transform:scale(1.025); }
.product-caption { padding:16px 17px 17px; border-top:1px solid rgba(0,0,0,.08); }
.product-name { font-size:17px; font-weight:650; margin:0 0 5px; }
.product-type { font-size:12px; color:#65615b; margin:0; letter-spacing:.015em; }

@media (max-width: 1050px) {
  :root { --content: min(100% - 40px, 900px); }
  .brand img { width:38px; }
  .brand span { font-size:22px; }
  .desktop-nav { gap:22px; }
  .quote-button { padding:11px 13px; }
  .feature-row, .feature-row.reverse { grid-template-columns:1fr 1.25fr; }
  .footer-inner { grid-template-columns:1fr 1fr; }
}

@media (max-width: 760px) {
  :root { --header-h: 68px; --content: calc(100vw - 32px); }
  .brand img { width:35px; }
  .brand span { font-size:20px; }
  .desktop-nav { display:none; }
  .mobile-toggle { display:block; }
  .mobile-nav {
    display:flex;
    position:fixed;
    top:var(--header-h);
    left:0; right:0;
    flex-direction:column;
    padding:24px 20px 28px;
    background:#fff;
    border-bottom:1px solid rgba(0,0,0,.1);
    transform:translateY(-130%);
    transition:transform .25s ease;
    z-index:99;
  }
  .mobile-nav.open { transform:translateY(0); }
  .mobile-nav a { padding:13px 4px; font-size:13px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
  .hero { min-height:calc(100svh - var(--header-h)); background-position:58% center; }
  .hero::before { background:linear-gradient(90deg,rgba(5,6,5,.87),rgba(5,6,5,.43) 72%,rgba(5,6,5,.25)); }
  .hero-content { padding:48px 0 60px; align-self:end; }
  .hero h1 { font-size:clamp(52px,14vw,72px); max-width:95%; }
  .hero p { font-size:17px; max-width:88%; }
  .editorial { padding-top:18px; }
  .editorial-inner { width:100%; }
  .feature-row, .feature-row.reverse { display:flex; flex-direction:column; border-left:0; border-right:0; min-height:0; }
  .feature-row.reverse .feature-media { order:1; }
  .feature-row.reverse .feature-copy { order:2; }
  .feature-media { min-height:320px; }
  .feature-copy { padding:48px 24px 52px; }
  .feature-copy h2 { font-size:44px; }
  .footer-inner { grid-template-columns:1fr; padding:48px 0; gap:34px; }
  .footer-brand { align-items:flex-start; }
  .product-grid { grid-template-columns:1fr; gap:20px; }
  .collection-main { padding:52px 0 68px; }
  .collection-intro { margin-bottom:42px; }
  .collection-group + .collection-group { margin-top:52px; }
}


/* Product Detail */
.product-detail-body { background:#f8f7f4; }
.product-detail-main { padding: 34px 0 72px; }
.product-detail-inner { width:var(--content); margin:0 auto; }
.breadcrumbs { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:0 0 32px; font-size:12px; color:#68645e; }
.breadcrumbs a:hover { color:#111; }
.breadcrumbs span[aria-current="page"] { color:#8a867f; }
.product-heading { max-width:700px; margin-bottom:30px; }
.product-heading h1 { margin:0; font-family:var(--serif); font-weight:400; font-size:clamp(48px,5.5vw,76px); line-height:.98; letter-spacing:-.04em; }
.product-material { margin:9px 0 16px; font-family:var(--serif); font-size:27px; line-height:1.1; }
.product-description { margin:0; max-width:560px; color:#4e4b46; font-size:16px; line-height:1.55; }
.product-detail-grid { display:grid; grid-template-columns:minmax(0,1.32fr) minmax(360px,.8fr); gap:clamp(44px,5vw,78px); align-items:start; }
.product-detail-image { margin:0; aspect-ratio:1.22 / 1; overflow:hidden; border-radius:5px; background:#dedbd5; border:1px solid rgba(0,0,0,.09); }
.product-detail-image img { width:100%; height:100%; object-fit:cover; }
.specifications { padding-top:7px; }
.specifications h2 { margin:0 0 16px; padding-bottom:14px; border-bottom:1px solid var(--line); font-size:13px; font-weight:750; letter-spacing:.22em; text-transform:uppercase; }
.spec-list { margin:0; }
.spec-row { display:grid; grid-template-columns:46% 54%; min-height:58px; border-bottom:1px solid var(--line); }
.spec-row dt, .spec-row dd { margin:0; display:flex; align-items:center; }
.spec-row dt { gap:17px; padding:12px 18px 12px 2px; border-right:1px solid var(--line); font-size:14px; }
.spec-row dd { padding:12px 0 12px 30px; color:#4f4c47; font-size:14px; line-height:1.55; }
.spec-row-tall { min-height:132px; }
.spec-icon { width:25px; height:25px; flex:0 0 25px; display:grid; place-items:center; }
.spec-icon svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.spec-row:first-of-type .spec-icon svg { fill:currentColor; stroke:none; }
.detail-quote-button { display:inline-flex; align-items:center; gap:28px; margin-top:22px; padding:15px 21px; background:#121212; color:#fff; font-size:11px; font-weight:750; letter-spacing:.11em; text-transform:uppercase; transition:.2s ease; }
.detail-quote-button:hover { background:#343434; transform:translateY(-1px); }
.spec-note { display:flex; gap:9px; margin:24px 0 0; color:#85817b; font-size:11px; line-height:1.55; max-width:380px; }
.product-card { display:block; }
.product-card:focus-visible { outline:2px solid #111; outline-offset:3px; }

@media (max-width: 920px) {
  .product-detail-grid { grid-template-columns:1fr; }
  .specifications { max-width:700px; }
}

@media (max-width: 760px) {
  .product-detail-main { padding:28px 0 55px; }
  .breadcrumbs { margin-bottom:25px; }
  .product-heading { margin-bottom:25px; }
  .product-heading h1 { font-size:clamp(46px,13vw,64px); }
  .product-material { font-size:24px; }
  .product-detail-image { aspect-ratio:1 / 1; }
  .spec-row { grid-template-columns:45% 55%; }
  .spec-row dt { gap:10px; font-size:13px; }
  .spec-row dd { padding-left:18px; font-size:13px; }
  .detail-quote-button { width:100%; justify-content:space-between; }
}


/* Shared image brand */
.brand-image img { width: 270px; max-width: 28vw; height: 56px; object-fit: contain; object-position: left center; }

/* Expanded footer */
.footer-inner-expanded { grid-template-columns: 1.25fr .72fr 1fr .9fr; }
.footer-cta { border-left: 1px solid rgba(255,255,255,.18); padding-left: 42px; }
.footer-cta p { margin: 0 0 24px; color: rgba(255,255,255,.8); font-size: 14px; line-height: 1.7; }
.footer-quote { display:inline-flex; justify-content:space-between; gap:28px; border:1px solid rgba(255,255,255,.65); padding:13px 17px; font-size:11px; font-weight:750; letter-spacing:.09em; text-transform:uppercase; transition:.2s; }
.footer-quote:hover { background:#fff; color:#111; }

/* Content page hero */
.content-page-body { background:#f8f7f4; }
.page-hero { color:#fff; background-image:linear-gradient(90deg,rgba(8,9,8,.92),rgba(8,9,8,.55)),url('../images/footer-texture.webp'); background-size:cover; background-position:center; }
.page-hero-inner { width:var(--content); margin:0 auto; padding:48px 0 50px; }
.page-hero h1 { margin:0 0 14px; font-family:var(--serif); font-size:clamp(52px,5.4vw,80px); line-height:1; font-weight:400; letter-spacing:-.035em; }
.page-hero p { margin:0; max-width:520px; color:rgba(255,255,255,.86); font-size:16px; line-height:1.55; }

/* Forms */
.form-section { padding:42px 0 62px; }
.form-layout { width:var(--content); margin:0 auto; display:grid; gap:38px; align-items:start; }
.contact-layout { grid-template-columns: .72fr 1.7fr; }
.quote-layout { grid-template-columns: .67fr 1.7fr; }
.contact-panel, .quote-panel { padding:18px 8px 10px; }
.contact-panel h2, .quote-panel h2, .form-card h2 { font-family:var(--serif); font-weight:400; font-size:34px; margin:0 0 29px; letter-spacing:-.02em; }
.contact-panel h2::after, .quote-panel h2::after, .form-card h2::after { content:""; display:block; width:40px; height:2px; background:#a46e37; margin-top:12px; }
.contact-item { display:flex; gap:17px; align-items:flex-start; padding:16px 0; border-bottom:1px solid var(--line); }
.round-icon { flex:0 0 44px; width:44px; height:44px; border-radius:50%; background:#1b1712; color:#fff; display:grid; place-items:center; font-size:18px; }
.linkedin-icon { font-weight:700; font-size:14px; }
.contact-item strong { display:block; margin:1px 0 5px; }
.contact-item p { margin:0; color:#514e49; font-size:14px; line-height:1.55; }
.form-card { background:#fff; border:1px solid rgba(0,0,0,.06); box-shadow:0 12px 36px rgba(0,0,0,.055); padding:34px 38px 30px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px 22px; }
.form-grid label { display:flex; flex-direction:column; gap:7px; font-size:12px; font-weight:650; }
.form-grid label span { color:#a54b32; }
.form-grid input, .form-grid select, .form-grid textarea { width:100%; border:1px solid rgba(0,0,0,.15); border-radius:2px; background:#fff; color:#202020; padding:12px 13px; font:inherit; font-weight:400; outline:none; transition:.18s; }
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus { border-color:#7b5b3f; box-shadow:0 0 0 3px rgba(164,110,55,.1); }
.form-grid textarea { resize:vertical; min-height:108px; }
.form-wide { grid-column:1 / -1; }
.form-submit { margin-top:20px; border:0; background:#121212; color:#fff; padding:14px 20px; display:inline-flex; align-items:center; justify-content:space-between; gap:30px; font-size:11px; font-weight:750; letter-spacing:.09em; text-transform:uppercase; cursor:pointer; transition:.2s; }
.form-submit:hover { background:#343434; transform:translateY(-1px); }
.form-privacy { margin:13px 0 0; color:#77736d; font-size:11px; }
.honeypot { position:absolute; left:-9999px; }
.file-field input { padding:18px; border-style:dashed; }
.file-field small { color:#7c7872; font-weight:400; }
.quote-doc-icon { font-family:var(--serif); font-size:58px; color:#a46e37; margin:0 0 10px; }
.quote-benefit { margin:25px 0; padding-left:34px; position:relative; }
.quote-benefit::before { content:"◇"; position:absolute; left:0; top:0; color:#a46e37; font-size:20px; }
.quote-benefit strong { font-size:13px; }
.quote-benefit p, .quote-note p { color:#5f5b55; font-size:12px; line-height:1.65; }
.quote-note { border:1px solid var(--line); padding:20px; margin-top:34px; }
.quote-note strong { font-family:var(--serif); font-size:20px; font-weight:400; }

/* About */
.about-main { padding:50px 0 68px; }
.about-inner { width:var(--content); margin:0 auto; }
.about-intro-grid, .about-bottom-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(60px,8vw,130px); }
.eyebrow { margin:0 0 20px; color:#9a632f; font-size:12px; font-weight:750; letter-spacing:.08em; text-transform:uppercase; }
.eyebrow::after { content:""; display:block; width:30px; height:2px; background:#b47b43; margin-top:10px; }
.about-intro-grid h2, .about-bottom-grid h2 { font-family:var(--serif); font-size:clamp(30px,3.1vw,45px); line-height:1.15; font-weight:400; margin:0 0 18px; letter-spacing:-.025em; }
.about-intro-grid p, .about-bottom-grid p { color:#514e49; line-height:1.72; font-size:15px; }
.inline-button { text-decoration:none; }
.about-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin:52px 0 58px; }
.about-stats article { text-align:center; border:1px solid var(--line); background:#fbfaf7; padding:30px 20px; }
.stat-icon { color:#a46e37; font-size:35px; }
.about-stats h3 { font-family:var(--serif); font-weight:400; font-size:30px; margin:18px 0 10px; }
.about-stats p { color:#66625c; font-size:13px; line-height:1.55; margin:0; }
.about-bottom-grid { border-top:1px solid var(--line); padding-top:42px; }
.about-bottom-grid ul { list-style:none; margin:20px 0 0; padding:0; }
.about-bottom-grid li { margin:11px 0; padding-left:24px; position:relative; color:#45423e; }
.about-bottom-grid li::before { content:"✓"; position:absolute; left:0; color:#a46e37; }

/* Gallery and thanks */
.gallery-placeholder { min-height:54vh; display:grid; place-items:center; text-align:center; padding:80px 24px; }
.gallery-placeholder h2 { font-family:var(--serif); font-size:clamp(38px,4vw,60px); font-weight:400; margin:0 0 14px; }
.gallery-placeholder p { color:#67635d; }
.thank-you-main { min-height:60vh; display:grid; place-items:center; padding:80px 24px; }
.thank-you-card { max-width:650px; text-align:center; }
.thank-you-card h1 { font-family:var(--serif); font-size:72px; font-weight:400; margin:0 0 16px; }
.thank-you-card > p:not(.eyebrow) { color:#615e58; font-size:17px; }
.thank-actions { display:flex; justify-content:center; gap:28px; align-items:center; margin-top:30px; }

@media (max-width:1050px) {
  .brand-image img { width:220px; }
  .footer-inner-expanded { grid-template-columns:1fr 1fr; }
  .footer-cta { border-left:0; padding-left:0; }
  .contact-layout, .quote-layout { grid-template-columns:1fr; }
  .contact-panel, .quote-panel { max-width:760px; }
  .about-stats { grid-template-columns:1fr 1fr; }
}
@media (max-width:760px) {
  .brand-image img { width:190px; max-width:65vw; height:47px; }
  .page-hero-inner { padding:38px 0 40px; }
  .form-section { padding:28px 0 48px; }
  .form-card { padding:27px 18px 24px; }
  .form-grid { grid-template-columns:1fr; }
  .form-wide { grid-column:auto; }
  .about-intro-grid, .about-bottom-grid { grid-template-columns:1fr; gap:42px; }
  .about-stats { grid-template-columns:1fr; }
  .footer-inner-expanded { grid-template-columns:1fr; }
  .thank-actions { flex-direction:column; }
}


/* Full Gallery */
.gallery-page-body { background:#0d0e0d; }
.gallery-main {
  color:#fff;
  background:
    linear-gradient(rgba(8,9,8,.88),rgba(8,9,8,.94)),
    url('../images/footer-texture.webp') center / cover fixed;
}
.gallery-hero { text-align:center; padding:46px 20px 28px; }
.gallery-hero-inner { width:min(760px,100%); margin:0 auto; }
.gallery-hero h1 {
  margin:0;
  font-family:var(--serif);
  font-size:clamp(52px,5.4vw,78px);
  line-height:1;
  font-weight:400;
  letter-spacing:-.035em;
  text-transform:none;
}
.gallery-title-rule { display:block; width:156px; height:1px; background:#b58146; margin:15px auto 13px; }
.gallery-hero p { margin:0 auto; max-width:650px; color:rgba(255,255,255,.78); font-size:15px; line-height:1.62; }
.gallery-showcase { padding:0 0 56px; }
.gallery-shell { width:min(1300px,calc(100vw - 64px)); margin:0 auto; }
.gallery-stage {
  position:relative;
  aspect-ratio:16 / 8.5;
  min-height:460px;
  overflow:hidden;
  background:#050505;
  border:1px solid rgba(255,255,255,.13);
  box-shadow:0 30px 80px rgba(0,0,0,.42);
}
.gallery-slide { position:absolute; inset:0; margin:0; opacity:0; visibility:hidden; transition:opacity .55s ease, visibility .55s ease; }
.gallery-slide.is-active { opacity:1; visibility:visible; }
.gallery-slide img { width:100%; height:100%; object-fit:contain; object-position:center; background:#070807; }
.gallery-slide::after {
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:32%;
  background:linear-gradient(transparent,rgba(0,0,0,.72));
  pointer-events:none;
}
.gallery-slide figcaption {
  position:absolute;
  left:28px;
  bottom:30px;
  z-index:2;
  max-width:min(580px,70%);
  color:rgba(255,255,255,.88);
  font-size:13px;
  letter-spacing:.025em;
}
.gallery-arrow {
  position:absolute;
  top:50%;
  z-index:5;
  width:54px;
  height:82px;
  display:grid;
  place-items:center;
  color:#fff;
  border:1px solid rgba(255,255,255,.13);
  background:rgba(5,5,5,.56);
  backdrop-filter:blur(8px);
  cursor:pointer;
  transform:translateY(-50%);
  transition:background .2s ease,border-color .2s ease;
}
.gallery-arrow:hover,.gallery-arrow:focus-visible { background:rgba(0,0,0,.86); border-color:rgba(255,255,255,.35); }
.gallery-arrow svg { width:30px; height:30px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.gallery-arrow-prev { left:0; border-left:0; }
.gallery-arrow-next { right:0; border-right:0; }
.gallery-status {
  position:absolute;
  left:50%;
  bottom:27px;
  z-index:4;
  transform:translateX(-50%);
  font-size:12px;
  font-weight:650;
  letter-spacing:.09em;
  color:rgba(255,255,255,.88);
}
.gallery-play {
  position:absolute;
  right:24px;
  bottom:20px;
  z-index:5;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 11px;
  border:1px solid rgba(255,255,255,.17);
  background:rgba(0,0,0,.35);
  color:rgba(255,255,255,.8);
  font:inherit;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.08em;
  cursor:pointer;
}
.gallery-pause-icon { width:9px; height:11px; border-left:2px solid currentColor; border-right:2px solid currentColor; }
.gallery-play.is-paused .gallery-pause-icon { width:0; height:0; border:0; border-top:6px solid transparent; border-bottom:6px solid transparent; border-left:9px solid currentColor; }
.gallery-progress { position:absolute; left:0; right:0; bottom:0; height:2px; z-index:6; background:rgba(255,255,255,.08); }
.gallery-progress span { display:block; width:0; height:100%; background:#b58146; }
.gallery-progress span.is-running { animation:galleryProgress 6s linear forwards; }
@keyframes galleryProgress { from { width:0; } to { width:100%; } }
.gallery-thumbnails {
  display:flex;
  gap:12px;
  overflow-x:auto;
  padding:16px 0 9px;
  scroll-snap-type:x proximity;
  scrollbar-width:thin;
  scrollbar-color:#70502f rgba(255,255,255,.08);
}
.gallery-thumbnails::-webkit-scrollbar { height:6px; }
.gallery-thumbnails::-webkit-scrollbar-track { background:rgba(255,255,255,.06); }
.gallery-thumbnails::-webkit-scrollbar-thumb { background:#70502f; }
.gallery-thumb {
  flex:0 0 172px;
  aspect-ratio:1.68 / 1;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  border-radius:3px;
  padding:0;
  background:#101110;
  opacity:.52;
  cursor:pointer;
  scroll-snap-align:start;
  transition:opacity .2s ease,border-color .2s ease,transform .2s ease;
}
.gallery-thumb img { width:100%; height:100%; object-fit:cover; }
.gallery-thumb:hover { opacity:.86; transform:translateY(-2px); }
.gallery-thumb.is-active { opacity:1; border-color:#b58146; box-shadow:0 0 0 1px #b58146 inset; }
.gallery-hint { margin:5px 0 0; color:rgba(255,255,255,.46); font-size:11px; text-align:center; }

@media (max-width:900px) {
  .gallery-shell { width:calc(100vw - 32px); }
  .gallery-stage { min-height:390px; aspect-ratio:4 / 3; }
  .gallery-thumb { flex-basis:145px; }
}
@media (max-width:600px) {
  .gallery-hero { padding:35px 20px 23px; }
  .gallery-hero h1 { font-size:54px; }
  .gallery-hero p { font-size:14px; }
  .gallery-showcase { padding-bottom:40px; }
  .gallery-shell { width:100%; }
  .gallery-stage { min-height:0; aspect-ratio:4 / 3.4; border-left:0; border-right:0; }
  .gallery-slide figcaption { left:18px; bottom:25px; max-width:58%; font-size:11px; }
  .gallery-arrow { width:42px; height:68px; }
  .gallery-arrow svg { width:25px; height:25px; }
  .gallery-status { bottom:24px; font-size:10px; }
  .gallery-play { right:14px; bottom:15px; padding:7px 8px; }
  .gallery-play-label { display:none; }
  .gallery-thumbnails { padding:12px 16px 8px; gap:9px; }
  .gallery-thumb { flex-basis:116px; }
  .gallery-hint { padding:0 18px; font-size:10px; }
}
@media (prefers-reduced-motion:reduce) {
  .gallery-slide { transition:none; }
  .gallery-progress span.is-running { animation:none; }
}
