@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=DM+Sans:wght@400;500;600&display=swap');

:root { --ink:#171412; --muted:#756c62; --gold:#b79a43; --gold-dark:#675522; --paper:#f5f0e8; --sand:#e5dacb; --line:rgba(23,20,18,.18); --display:'Cormorant Garamond', Georgia, serif; --sans:'DM Sans', 'Segoe UI', sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); font-size:15px; line-height:1.6; }
img { display:block; max-width:100%; }
a { color:inherit; }
button { color:inherit; font:inherit; }
:focus-visible { outline:2px solid var(--gold-dark); outline-offset:4px; }
.skip-link { position:fixed; top:0; left:1rem; z-index:20; transform:translateY(-120%); background:var(--ink); color:var(--paper); padding:.65rem 1rem; }
.skip-link:focus { transform:translateY(0); }
.site-header { position:sticky; top:0; z-index:10; display:flex; align-items:center; justify-content:space-between; gap:2rem; min-height:84px; padding:1rem 5vw; border-bottom:1px solid var(--line); background:rgba(245,240,232,.94); backdrop-filter:blur(12px); }
.brand { display:flex; flex-direction:column; text-decoration:none; line-height:1; }
.brand-logo { width:clamp(170px,15vw,230px); height:auto; }
.brand-name { font:600 2rem/1 var(--display); letter-spacing:.01em; }
.brand-name i { color:var(--gold-dark); font-style:italic; font-weight:400; }
.brand-subtitle { margin-top:.45rem; color:var(--muted); font-size:.57rem; letter-spacing:.2em; text-transform:uppercase; }
.site-nav { display:flex; align-items:center; gap:clamp(1rem,2.5vw,2.5rem); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; }
.site-nav a { text-decoration:none; }
.site-nav a:hover { color:var(--gold-dark); }
.menu-toggle { display:none; border:0; background:none; cursor:pointer; }
.section-pad { padding:clamp(4.5rem,9vw,9rem) 8vw; }
.hero { display:grid; grid-template-columns:minmax(240px,.75fr) minmax(440px,1.25fr); align-items:center; gap:clamp(3rem,8vw,9rem); min-height:calc(100vh - 84px); padding-top:clamp(3rem,8vw,7rem); padding-bottom:clamp(3rem,8vw,7rem); }
.eyebrow { margin:0 0 1.3rem; color:var(--gold-dark); font-size:.65rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase; }
h1,h2,h3 { margin:0; font-family:var(--display); font-weight:500; line-height:.92; }
h1 { font-size:clamp(4.5rem,9vw,9rem); letter-spacing:-.03em; }
h2 { font-size:clamp(3.3rem,6vw,6.5rem); letter-spacing:-.025em; }
h3 { font-size:clamp(2.4rem,4vw,4rem); }
em { color:var(--gold-dark); font-weight:400; }
.hero-intro { max-width:20rem; margin:2rem 0 2.2rem; color:var(--muted); font-size:1.02rem; }
.text-link { display:inline-flex; align-items:center; gap:.75rem; padding-bottom:.35rem; border-bottom:1px solid var(--ink); font-size:.72rem; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; }
.text-link span { color:var(--gold-dark); font-size:1rem; }
.hero-gallery { position:relative; min-width:0; }
.hero-image-frame { aspect-ratio:1 / 1.18; overflow:hidden; background:#d9d0c4; }
.hero-image, .collection-image { width:100%; height:100%; object-fit:contain; }
.hero-image { object-fit:cover; }
.gallery-meta { display:flex; align-items:center; gap:1rem; margin-top:1rem; color:var(--muted); font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; }
.gallery-rule { width:3rem; height:1px; background:var(--gold); }
.gallery-controls { display:flex; gap:.55rem; }
.hero-gallery > .gallery-controls { position:absolute; right:0; bottom:3.2rem; }
.circle-button { display:grid; width:2.6rem; height:2.6rem; place-items:center; border:1px solid var(--line); border-radius:50%; background:rgba(245,240,232,.75); cursor:pointer; font-size:1rem; transition:background .2s, color .2s, transform .2s; }
.circle-button:hover { background:var(--ink); color:var(--paper); transform:translateY(-2px); }
.intro-band { background:var(--ink); color:var(--paper); }
.intro-band .eyebrow { color:var(--gold); }
.intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:5vw; align-items:end; }
.intro-grid p { max-width:28rem; margin:0; color:#c9c0b4; }
.collections-wrap { padding:0 8vw; }
.collection-section { padding:clamp(5rem,10vw,10rem) 0; border-bottom:1px solid var(--line); }
.collection-section.alternate { background:var(--sand); margin:0 -8vw; padding-left:8vw; padding-right:8vw; }
.collection-heading { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:3rem; }
.collection-heading > p { max-width:20rem; margin:0; color:var(--muted); }
.collection-gallery { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(220px,.65fr); min-height:clamp(420px,52vw,700px); }
.collection-image-frame { overflow:hidden; min-height:420px; background:#ded4c7; }
.stone-frame { background:#c5b69f; }
.collection-side { display:flex; flex-direction:column; justify-content:space-between; padding:2rem; background:var(--ink); color:var(--paper); }
.collection-side .gallery-count { color:var(--gold); font-size:.65rem; letter-spacing:.15em; }
.collection-side .gallery-label { color:#bdb2a4; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; }
.collection-side .gallery-controls { justify-content:flex-end; }
.collection-side .circle-button { border-color:rgba(245,240,232,.35); background:transparent; color:var(--paper); }
.collection-side .circle-button:hover { background:var(--gold); color:var(--ink); }
.thumbs { display:flex; gap:.5rem; overflow:auto; padding-top:1rem; scrollbar-width:thin; }
.thumb { flex:0 0 4.5rem; aspect-ratio:1; padding:0; border:1px solid transparent; background:#d9d0c4; cursor:pointer; opacity:.62; }
.thumb[aria-current="true"] { border-color:var(--gold-dark); opacity:1; }
.thumb img { width:100%; height:100%; object-fit:cover; }
.about-section { display:grid; grid-template-columns:minmax(260px,.9fr) minmax(280px,1fr); align-items:center; gap:clamp(3rem,9vw,9rem); }
.about-image { aspect-ratio:4 / 5; overflow:hidden; background:var(--sand); }
.about-image img { width:100%; height:100%; object-fit:cover; }
.about-copy { max-width:34rem; }
.about-copy h2 { margin-bottom:2rem; }
.about-copy p { color:var(--muted); }
.about-copy .text-link { margin-top:1rem; }
.film-section { padding-top:0; }
.section-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:2rem; }
.section-heading .eyebrow { margin:0; }
.video-frame { aspect-ratio:16 / 8; background:var(--ink); }
.video-frame iframe { width:100%; height:100%; border:0; }
.contact-section { display:grid; grid-template-columns:1fr 1fr; gap:3rem; background:var(--gold-dark); color:var(--paper); }
.contact-section .eyebrow { color:#e4d49d; }
.contact-details { max-width:25rem; padding-top:1rem; }
.contact-details > p:first-child { color:#e8deca; }
.contact-link { display:flex; justify-content:space-between; padding:1.2rem 0; border-top:1px solid rgba(245,240,232,.35); border-bottom:1px solid rgba(245,240,232,.35); font-size:1.15rem; text-decoration:none; }
.contact-link span { color:#e4d49d; }
.address { margin-top:2rem; color:#dfd0ac; font-size:.8rem; }
.site-footer { display:flex; justify-content:space-between; gap:1rem; padding:1.5rem 8vw; background:var(--ink); color:#aea397; font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; }
.site-footer a { color:var(--paper); text-decoration:none; }
.lightbox { width:min(92vw,1000px); padding:0; border:1px solid rgba(245,240,232,.2); background:var(--ink); color:var(--paper); }
.lightbox::backdrop { background:rgba(9,8,7,.86); backdrop-filter:blur(8px); }
.lightbox-inner { padding:1.2rem; }
.lightbox-top, .lightbox-bottom { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.lightbox-top p { margin:0; color:var(--gold); font-size:.65rem; letter-spacing:.18em; text-transform:uppercase; }
.close-lightbox { border:0; background:none; color:var(--paper); cursor:pointer; font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; }
.lightbox-image { width:100%; max-height:75vh; margin:1rem 0; object-fit:contain; }
.lightbox-count { color:#bdb2a4; font-size:.7rem; letter-spacing:.12em; }
@media (max-width:800px) { .site-header { min-height:72px; } .brand-name { font-size:1.7rem; } .menu-toggle { display:flex; align-items:center; gap:.4rem; color:var(--muted); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; } .menu-toggle span { width:1rem; height:1px; background:var(--ink); } .menu-toggle b { margin-left:.25rem; font-weight:500; } .site-nav { position:absolute; top:100%; right:0; left:0; display:none; flex-direction:column; align-items:stretch; gap:0; padding:1rem 8vw; border-bottom:1px solid var(--line); background:var(--paper); } .site-nav.is-open { display:flex; } .site-nav a { padding:.7rem 0; border-bottom:1px solid var(--line); } .hero { grid-template-columns:1fr; min-height:auto; } .hero-copy { max-width:30rem; } .hero-image-frame { aspect-ratio:4 / 5; } .intro-grid, .about-section, .contact-section { grid-template-columns:1fr; } .collection-heading { display:block; } .collection-heading > p { margin-top:1.5rem; } .collection-gallery { grid-template-columns:1fr; min-height:0; } .collection-image-frame { min-height:0; aspect-ratio:4 / 5; } .collection-side { min-height:21rem; } .section-heading { display:block; } .section-heading .eyebrow { margin-top:1rem; } .site-footer { flex-direction:column; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }
