:root {
    --bg: #f6f3ee;
    --bg-2: #efeae3;
    --ink: #1a1814;
    --muted: #5c564e;
    --line: #e3dbd1;
    --accent: #6e5234;
    --accent-2: #c4a574;
    --white: #fffcf8;
    --dark: #141210;
    --serif: "Cormorant Garamond", Georgia, serif;
    --sans: "Outfit", system-ui, sans-serif;
    --header: 88px;
    --shadow: 0 20px 50px rgba(20, 18, 16, 0.12);
    --select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.33464 6L8.0013 10.6667L12.668 6' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scrollbar-gutter: stable; }
html.lenis, html.lenis body { scroll-behavior: auto; }
body {
    margin: 0;
    background: var(--bg);
    color: var(--ink);
    font-family: var(--sans);
    font-weight: 360;
    font-size: 1.02rem;
    line-height: 1.65;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 500; letter-spacing: -0.03em; line-height: 1.05; margin: 0 0 0.4em; }
h1 { font-size: clamp(3.2rem, 8vw, 7.2rem); }
h2 { font-size: clamp(2.3rem, 4vw, 4rem); }
h3 { font-size: 1.8rem; }
p { margin: 0 0 1rem; }
.sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0;
}
.skip-link {
    position: absolute; left: 16px; top: -40px; background: var(--ink); color: var(--white); padding: 8px 12px; z-index: 80;
}
.skip-link:focus { top: 12px; }
.container { width: min(1440px, calc(100% - 48px)); margin-inline: auto; }
.container-wide { width: min(1440px, calc(100% - 48px)); margin-inline: auto; }

.site-header {
    position: fixed; inset: 0 0 auto 0; z-index: 40; color: #fff;
    background: rgba(10, 10, 10, 0.55);
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    -webkit-backdrop-filter: saturate(160%) blur(22px);
    backdrop-filter: saturate(160%) blur(22px);
    transition: transform .4s ease, background .25s ease, color .25s ease;
}
.site-header.is-solid, body:not(.home) .site-header {
    background: rgba(10, 10, 10, 0.72);
    color: #fff;
}
.site-header.is-hidden { transform: translateY(-110%); }
.header-bar { min-height: var(--header); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; font-size: 0.82rem; }
.brand img { height: 68px; width: auto; }
.brand-mark { width: 10px; height: 10px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 5px rgba(196, 165, 116, 0.35); }
.site-nav { display: flex; align-items: center; gap: 22px; }
.site-nav a {
    position: relative;
    text-decoration: none;
    font-size: 0.92rem;
    padding: 7px 10px;
}
.site-nav a::before {
    content: ""; position: absolute; inset: 7px 12px; pointer-events: none; opacity: 0;
    background:
        linear-gradient(currentColor, currentColor) left top / 7px 1px no-repeat,
        linear-gradient(currentColor, currentColor) left top / 1px 7px no-repeat,
        linear-gradient(currentColor, currentColor) right top / 7px 1px no-repeat,
        linear-gradient(currentColor, currentColor) right top / 1px 7px no-repeat,
        linear-gradient(currentColor, currentColor) left bottom / 7px 1px no-repeat,
        linear-gradient(currentColor, currentColor) left bottom / 1px 7px no-repeat,
        linear-gradient(currentColor, currentColor) right bottom / 7px 1px no-repeat,
        linear-gradient(currentColor, currentColor) right bottom / 1px 7px no-repeat;
    transition: inset .6s cubic-bezier(.16,1,.3,1), opacity .35s ease;
}
.site-nav a:hover::before,
.site-nav a:focus-visible::before,
.site-nav a[aria-current="page"]::before { inset: 0; opacity: 1; }
.nav-toggle { display: none; position: relative; width: 44px; height: 44px; border: 0; background: transparent; padding: 0; color: inherit; }
.nav-toggle span:not(.sr-only) {
    position: absolute; left: 11px; right: 11px; height: 1.5px; margin: 0; background: currentColor;
    transition: transform .25s ease, opacity .2s ease;
}
.nav-toggle span:nth-child(2) { top: 13px; }
.nav-toggle span:nth-child(3) { top: 21px; }
.nav-toggle span:nth-child(4) { top: 29px; }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { transform: translateY(8px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(4) { transform: translateY(-8px) rotate(-45deg); }
.nav-socials { display: none; }

.btn, button.btn, .btn-light, .btn-ghost {
    --btn-ink: #f4efe6;
    --btn-fill: #0c0c0c;
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 52px; padding: 0 28px;
    color: var(--btn-ink); text-decoration: none; border: 0; cursor: pointer;
    letter-spacing: 0.16em; text-transform: uppercase; font-size: 0.74rem;
    background:
        linear-gradient(var(--btn-ink), var(--btn-ink)) left 0 top 0 / 10px 1px no-repeat,
        linear-gradient(var(--btn-ink), var(--btn-ink)) left 0 top 0 / 1px 10px no-repeat,
        linear-gradient(var(--btn-ink), var(--btn-ink)) right 0 top 0 / 10px 1px no-repeat,
        linear-gradient(var(--btn-ink), var(--btn-ink)) right 0 top 0 / 1px 10px no-repeat,
        linear-gradient(var(--btn-ink), var(--btn-ink)) left 0 bottom 0 / 10px 1px no-repeat,
        linear-gradient(var(--btn-ink), var(--btn-ink)) left 0 bottom 0 / 1px 10px no-repeat,
        linear-gradient(var(--btn-ink), var(--btn-ink)) right 0 bottom 0 / 10px 1px no-repeat,
        linear-gradient(var(--btn-ink), var(--btn-ink)) right 0 bottom 0 / 1px 10px no-repeat,
        var(--btn-fill);
    transition: color .25s ease, background-color .25s ease;
}
.btn:hover, button.btn:hover, .btn-light:hover, .btn-ghost:hover {
    color: #0c0c0c;
    background:
        linear-gradient(#0c0c0c, #0c0c0c) left 0 top 0 / 10px 1px no-repeat,
        linear-gradient(#0c0c0c, #0c0c0c) left 0 top 0 / 1px 10px no-repeat,
        linear-gradient(#0c0c0c, #0c0c0c) right 0 top 0 / 10px 1px no-repeat,
        linear-gradient(#0c0c0c, #0c0c0c) right 0 top 0 / 1px 10px no-repeat,
        linear-gradient(#0c0c0c, #0c0c0c) left 0 bottom 0 / 10px 1px no-repeat,
        linear-gradient(#0c0c0c, #0c0c0c) left 0 bottom 0 / 1px 10px no-repeat,
        linear-gradient(#0c0c0c, #0c0c0c) right 0 bottom 0 / 10px 1px no-repeat,
        linear-gradient(#0c0c0c, #0c0c0c) right 0 bottom 0 / 1px 10px no-repeat,
        #c4a574;
}
.cookie-bar button {
    min-height: 44px; border: 0; cursor: pointer; padding: 0 16px;
    background: #c4a574; color: #0c0c0c; letter-spacing: 0.12em; text-transform: uppercase; font-size: 0.74rem;
}
.text-link { color: var(--accent-2); text-decoration: none; border-bottom: 1px solid currentColor; font-size: 0.82rem; letter-spacing: 0.12em; text-transform: uppercase; }
.eyebrow { letter-spacing: 0.22em; text-transform: uppercase; font-size: 0.75rem; color: var(--accent); margin-bottom: 0.8rem; }
.lede { font-size: 1.15rem; color: var(--muted); max-width: 40rem; }

body.home, body.page-about { background: #000; }
.lm-pin {
    position: relative;
    height: max(3791px, calc(100vh + 2100px));
    background: #000;
    color: #fff;
}
.lm-stage {
    position: sticky; top: 0; z-index: 1; height: 100vh;
    display: flex; align-items: center; justify-content: center;
    padding-top: var(--header); box-sizing: border-box;
    overflow: hidden; background: #000; perspective: 800px;
}
.lm-mosaic-fit {
    position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; pointer-events: none;
}
.lm-mosaic {
    display: grid; grid-auto-flow: column; grid-template-rows: 180px 180px; grid-auto-columns: 180px;
    column-gap: 68px; row-gap: 54px; width: 1480px; height: 568px;
    justify-content: center; align-content: center; transform-style: preserve-3d; flex: none;
}
.lm-card {
    width: 180px; height: 180px; margin: 0; overflow: hidden;
    transform-style: preserve-3d; opacity: 0; will-change: transform, opacity;
}
.lm-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lm-identity {
    position: relative; z-index: 3; width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center; pointer-events: none;
}
.lm-name-wrap {
    position: relative; display: flex; justify-content: center;
    font-size: 8vw;
}
.lm-portrait {
    position: absolute; top: 50%; left: 50%;
    width: calc(1.15em + 30px); height: calc(1.35em + 30px);
    object-fit: cover; z-index: 0; opacity: 0; will-change: transform, opacity;
}
.lm-name {
    position: relative; z-index: 1; margin: 0;
    font-family: "Instrument Serif", "Cormorant Garamond", serif;
    font-weight: 400; font-size: 1em; line-height: 0.9; letter-spacing: -0.04em;
    text-align: center; white-space: nowrap; mix-blend-mode: difference; color: #fff;
    opacity: 0; will-change: transform, opacity;
}
.lm-sub {
    position: absolute; left: 50%; top: calc(50% + 0.68em + 34px);
    display: flex; flex-direction: column; align-items: center; gap: 6px;
    width: min(640px, 92vw); margin: 0; padding: 0 16px;
    font-size: inherit; line-height: normal; letter-spacing: normal;
    text-align: center; opacity: 0; will-change: transform, opacity;
    transform: translateX(-50%);
}
.lm-sub p { margin: 0; font-size: 16px; line-height: 1.5; letter-spacing: 0.01em; }
.lm-sub p { margin: 0; }
.lm-triggers { position: relative; height: 1858px; pointer-events: none; }
.lm-t1 { height: 100vh; }
.lm-t2, .lm-t3, .lm-t4 { position: absolute; left: 0; right: 0; height: 100vh; }
.lm-t2 { top: 350px; }
.lm-t3 { top: 589px; }
.lm-t4 { bottom: 164px; }
@media (max-width: 800px) {
    .lm-stage { padding-top: 0; }
    .lm-identity { height: 100%; }
    .lm-name-wrap { transform: translateY(-8vh); }
    .lm-mosaic {
        grid-template-rows: 92px 92px 92px; grid-auto-columns: 92px;
        column-gap: 18px; row-gap: 16px; width: 422px; height: 308px;
    }
    .lm-card { width: 92px; height: 92px; }
    .lm-sub p { font-size: 13px; }
}

.about-frame { background: #070707; color: #fff; padding: 48px 0 56px; }
.about-layout { display: grid; gap: 36px; align-items: center; }
.about-shot {
    position: relative; display: block; padding: 16px; color: #fff; text-decoration: none;
}
.about-shot img {
    width: 100%;
    height: min(68vh, 620px);
    min-height: 280px;
    object-fit: cover;
    object-position: center 20%;
    display: block;
}
.about-corners { position: absolute; inset: 0; pointer-events: none; }
.about-corners::before, .about-corners::after,
.about-shot::before, .about-shot::after {
    content: ""; position: absolute; width: 36px; height: 36px;
    border: 1.5px solid #fff; pointer-events: none;
}
.about-corners::before { top: 0; left: 0; border-right: 0; border-bottom: 0; }
.about-corners::after { top: 0; right: 0; border-left: 0; border-bottom: 0; }
.about-shot::before { left: 0; bottom: 0; border-right: 0; border-top: 0; }
.about-shot::after { right: 0; bottom: 0; border-left: 0; border-top: 0; }
.about-caption { display: flex; align-items: center; }
.about-frame h2 {
    font-family: "Instrument Serif", "Cormorant Garamond", serif;
    font-weight: 400; font-size: clamp(2rem, 4vw, 3.4rem); letter-spacing: -0.03em; margin: 0 0 16px; color: #fff;
}
.about-frame .about-caption p { margin: 0 0 22px; color: rgba(255,255,255,.72); }
.about-more { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.5); letter-spacing: 0.08em; text-transform: uppercase; font-size: 0.82rem; }
.section { padding: 88px 0; }
.section-tight { padding-top: 20px; }
.section-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px 24px; margin-bottom: 28px; }
.section-head h2 { margin: 0; }
.split, .about-grid, .contact-layout { display: grid; gap: 32px; }
.about-grid img { width: 100%; height: 100%; max-height: 720px; object-fit: cover; }
.stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 28px 0 0; }
.stats dt { font-family: var(--serif); font-size: 2.4rem; }
.stats dd { margin: 0; color: var(--muted); }

.service-stage { position: relative; background: #070707; color: #fff; padding: 72px 0 96px; }
.service-stage .eyebrow, .service-stage .text-link { color: #fff; }
.service-pin { text-align: center; padding: 0 24px 40px; pointer-events: none; }
.service-pin :is(h1, h2) {
    margin: 0; color: #f4efe6; font-weight: 400; line-height: .85; letter-spacing: -0.04em;
    font-family: "Instrument Serif", "Cormorant Garamond", serif;
    font-size: clamp(4rem, 13vw, 12rem);
}
.service-zigzag { position: relative; z-index: 1; display: grid; gap: 48px; }
.service-stage-foot { position: relative; z-index: 1; text-align: center; margin-top: 72px; }
.service-grid { display: grid; gap: 36px; }
.service-hit { position: relative; display: grid; gap: 16px; text-decoration: none; color: inherit; height: 100%; padding: 16px 16px 18px; }
.service-frame { position: relative; display: block; overflow: hidden; }
.service-frame img, .service-frame .image-fallback {
    aspect-ratio: 16 / 10; width: 100%; object-fit: cover; background: #1a1a1a; display: block;
    transform: scale(1.02); transition: transform .9s cubic-bezier(.22,1,.36,1);
}
.service-hit:hover .service-frame img { transform: scale(1.07); }
.service-hit::before, .service-hit::after,
.service-marks::before, .service-marks::after {
    content: ""; position: absolute; width: 36px; height: 36px; border: 1px solid rgba(244,239,230,.9); pointer-events: none; z-index: 1;
    opacity: 0; transform: translate(var(--mx), var(--my));
    transition: opacity .35s ease, transform .6s cubic-bezier(.16,1,.3,1);
}
.service-hit:hover::before, .service-hit:hover::after,
.service-hit:hover .service-marks::before, .service-hit:hover .service-marks::after { opacity: 1; transform: translate(0, 0); }
.service-hit::before { top: 0; left: 0; border-right: 0; border-bottom: 0; --mx: 14px; --my: 14px; }
.service-marks::before { top: 0; right: 0; border-left: 0; border-bottom: 0; --mx: -14px; --my: 14px; }
.service-marks::after { left: 0; bottom: 0; border-right: 0; border-top: 0; --mx: 14px; --my: -14px; }
.service-hit::after { right: 0; bottom: 0; border-left: 0; border-top: 0; --mx: -14px; --my: -14px; }
.service-marks { position: absolute; inset: 0; pointer-events: none; }
@media (max-width: 899px) {
    .service-zigzag > :nth-child(even) { width: 88%; margin-left: auto; }
    .service-zigzag > :nth-child(4n+3) { width: 80%; }
}
@media (min-width: 900px) {
    .service-stage { padding: 0 0 120px; }
    .service-pin {
        position: sticky; top: 0; height: 100vh; padding: 0 24px;
        display: grid; place-content: center;
    }
    .service-pin :is(h1, h2) { filter: blur(var(--pin-blur, 0px)); will-change: filter; }
    .service-zigzag {
        grid-template-columns: repeat(40, minmax(0, 1fr));
        gap: 120px 0; align-items: start;
    }
    .service-zigzag > :nth-child(4n+1) { grid-column: 12 / span 18; }
    .service-zigzag > :nth-child(4n+2) { grid-column: 4 / span 20; }
    .service-zigzag > :nth-child(4n+3) { grid-column: 2 / span 13; margin-top: 140px; }
    .service-zigzag > :nth-child(4n+3) .service-frame img { aspect-ratio: 9 / 8; }
    .service-zigzag > :nth-child(4n+4) { grid-column: 25 / span 15; }
    .service-zigzag > :nth-child(4n+4) .service-frame img { aspect-ratio: 4 / 5; }
}
.service-view {
    position: absolute; left: 0; top: 0; z-index: 2;
    width: 78px; height: 78px; margin: -39px 0 0 -39px;
    display: grid; place-items: center;
    color: #fff; font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase;
    opacity: 0; pointer-events: none;
    background:
        linear-gradient(#fff, #fff) left 8px top 8px / 12px 1px no-repeat,
        linear-gradient(#fff, #fff) left 8px top 8px / 1px 12px no-repeat,
        linear-gradient(#fff, #fff) right 8px top 8px / 12px 1px no-repeat,
        linear-gradient(#fff, #fff) right 8px top 8px / 1px 12px no-repeat,
        linear-gradient(#fff, #fff) left 8px bottom 8px / 12px 1px no-repeat,
        linear-gradient(#fff, #fff) left 8px bottom 8px / 1px 12px no-repeat,
        linear-gradient(#fff, #fff) right 8px bottom 8px / 12px 1px no-repeat,
        linear-gradient(#fff, #fff) right 8px bottom 8px / 1px 12px no-repeat;
    transition: opacity .28s ease;
}
@media (hover: hover) {
    .service-hit { cursor: none; }
    .service-hit:hover .service-view { opacity: 1; }
}
.service-card-copy { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; padding: 4px 8px 0; }
.service-card h2,
.service-card h3 { margin: 0 0 6px; font-family: "Instrument Serif", "Cormorant Garamond", serif; font-weight: 400; font-size: clamp(1.6rem, 2.4vw, 2.2rem); letter-spacing: -0.03em; line-height: 1.05; }
.service-card p { color: rgba(255,255,255,.68); margin: 0; max-width: 42ch; }
.service-card .price { color: #c8a15e; margin-top: 10px; letter-spacing: 0.04em; }
.services-page {
    background: #070707; color: #f4efe6; min-height: 100vh;
    padding: calc(var(--header) + 56px) 0 96px;
}
.services-hero { margin-bottom: 42px; }
.services-page h1 {
    margin: 0; color: #f4efe6; font-weight: 400;
    font-family: "Instrument Serif", "Cormorant Garamond", serif;
    font-size: clamp(3.4rem, 7vw, 6.4rem);
}
.services-page .lede { color: rgba(244,239,230,.72); max-width: 40rem; }
.services-page .breadcrumbs, .services-page .breadcrumbs a { color: rgba(255,252,248,.86); }
.services-page .empty { color: rgba(244,239,230,.62); }
.price { color: var(--accent) !important; }

.albums-stage { background: #070707; color: #f4efe6; padding: 96px 0 110px; overflow-x: clip; }
.albums-grid {
    position: relative; z-index: 1;
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px;
    max-width: 1180px; align-items: start;
}
.gallery-card-title { display: none; }
.albums-grid .gallery-card-title {
    position: absolute; inset: auto 0 0 0; z-index: 1; display: block;
    padding: 72px 22px 20px; text-align: left; pointer-events: none;
    background: linear-gradient(180deg, rgba(7,7,7,0) 0%, rgba(7,7,7,.88) 100%);
    color: #f4efe6; font-family: "Instrument Serif", "Cormorant Garamond", serif;
    font-size: clamp(1.4rem, 2.4vw, 2.3rem); line-height: 1; letter-spacing: -0.02em;
    opacity: 0; transform: translateY(14px);
    transition: opacity .45s ease, transform .6s cubic-bezier(.16,1,.3,1);
}
.albums-grid .gallery-card:hover .gallery-card-title,
.albums-grid .gallery-card:focus-visible .gallery-card-title { opacity: 1; transform: none; }
.albums-col, .albums-stack { display: contents; }
.albums-grid .masonry-item { margin: 0; }
.albums-grid .gallery-card { overflow: hidden; background: #141414; }
.albums-grid .gallery-card img {
    width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover;
    transition: transform 1s cubic-bezier(.22,1,.36,1), scale 1.4s cubic-bezier(.22,1,.36,1);
}
.albums-grid .gallery-card:hover img { transform: scale(1.06); }
.albums-grid .gallery-card::before, .albums-grid .gallery-card::after {
    content: ""; position: absolute; z-index: 1; width: 26px; height: 26px; pointer-events: none;
    border: 1px solid rgba(244,239,230,.9); opacity: 0;
    transform: translate(var(--mx), var(--my));
    transition: opacity .35s ease, transform .6s cubic-bezier(.16,1,.3,1);
}
.albums-grid .gallery-card::before { top: 12px; left: 12px; border-right: 0; border-bottom: 0; --mx: 10px; --my: 10px; }
.albums-grid .gallery-card::after { right: 12px; bottom: 12px; border-left: 0; border-top: 0; --mx: -10px; --my: -10px; }
.albums-grid .gallery-card:hover::before, .albums-grid .gallery-card:hover::after { opacity: 1; transform: translate(0, 0); }
.albums-grid.is-armed .masonry-item {
    clip-path: inset(100% 0 0 0);
    transition: clip-path 1.1s cubic-bezier(.77,0,.18,1);
}
.albums-grid.is-armed .masonry-item img { scale: 1.25; }
.albums-grid.is-armed .masonry-item.is-in { clip-path: inset(0 0 0 0); }
.albums-grid.is-armed .masonry-item.is-in img { scale: 1; }
.albums-foot { position: relative; z-index: 1; text-align: center; margin-top: 56px; }
@media (min-width: 900px) {
    .albums-stage { padding: 0 0 120px; }
}
.albums-foot .text-link { color: #f4efe6; }

.magnet-btn {
    --ink-on: #f4efe6; --ink-off: #0c0c0c;
    position: relative; display: inline-flex; align-items: center; justify-content: center;
    min-height: 58px; padding: 0 34px; color: var(--ink-on); text-decoration: none;
    font-size: 0.78rem; letter-spacing: 0.18em; text-transform: uppercase;
    border: 1px solid rgba(244,239,230,.18); isolation: isolate; will-change: transform;
    transition: border-color .4s ease, color .45s cubic-bezier(.16,1,.3,1);
}
.magnet-btn-fill {
    position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none;
}
.magnet-btn-fill::before {
    content: ""; position: absolute; left: -10%; right: -10%; top: 0; height: 220%;
    background: #f4efe6; border-radius: 50%;
    transform: translateY(105%);
    transition: transform .7s cubic-bezier(.76,0,.24,1), border-radius .7s cubic-bezier(.76,0,.24,1);
}
.magnet-btn-inner { display: inline-flex; align-items: center; gap: 14px; will-change: transform; }
.magnet-btn-label { display: block; overflow: hidden; line-height: 1.3; }
.magnet-btn-label > span {
    position: relative; display: block;
    transition: transform .6s cubic-bezier(.76,0,.24,1);
}
.magnet-btn-label > span::after {
    content: attr(data-text); position: absolute; left: 0; top: 100%;
}
.magnet-btn-arrow { flex: none; transition: transform .6s cubic-bezier(.76,0,.24,1); }
.magnet-btn:hover, .magnet-btn:focus-visible { color: var(--ink-off); border-color: transparent; }
.magnet-btn:hover .magnet-btn-fill::before, .magnet-btn:focus-visible .magnet-btn-fill::before { transform: translateY(-25%); border-radius: 0; }
.magnet-btn:hover .magnet-btn-label > span, .magnet-btn:focus-visible .magnet-btn-label > span { transform: translateY(-100%); }
.magnet-btn:hover .magnet-btn-arrow, .magnet-btn:focus-visible .magnet-btn-arrow { transform: translateX(5px); }
.magnet-btn:active .magnet-btn-inner { scale: .96; }
@media (prefers-reduced-motion: reduce) {
    .magnet-btn, .magnet-btn-fill::before, .magnet-btn-label > span, .magnet-btn-arrow { transition: none; }
}
@media (min-width: 700px) {
    .albums-grid {
        --step: clamp(160px, 29vw, 420px);
        grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch;
    }
    .albums-col { display: block; position: relative; }
    .albums-stack {
        display: grid; gap: 10px;
        transform: skewY(var(--skew, 0deg)); transform-origin: center;
    }
    .albums-col:nth-child(1) .albums-stack { position: sticky; top: calc(var(--header) + 12px); }
    .albums-col:nth-child(2) .albums-stack {
        position: sticky; top: calc(var(--header) + 12px - var(--step) * 0.45);
        margin-top: var(--step);
    }
    .albums-col:nth-child(3) .albums-stack { margin-top: calc(var(--step) * 2.2); }
}
.masonry { columns: 2; column-gap: 10px; }
.masonry-item { break-inside: avoid; margin: 0 0 10px; }
.gallery-card {
    position: relative; display: block; width: 100%; padding: 0; border: 0; background: #141414; cursor: pointer; text-align: left; color: inherit;
}
.gallery-card img { width: 100%; height: auto; display: block; }
.albums-page { min-height: 100vh; padding-top: calc(var(--header) + 48px); }
.albums-page .albums-pin { padding-bottom: 28px; }
.albums-page .albums-pin h1 { animation: albums-title-in 1.4s cubic-bezier(.16,1,.3,1) backwards; }
.albums-grid[hidden] { display: none; }
.albums-toolbar {
    position: relative; z-index: 1; display: grid; gap: 28px; margin-bottom: 40px;
    animation: albums-rise 1.1s .35s cubic-bezier(.16,1,.3,1) both;
}
.albums-intro { display: grid; gap: 14px; max-width: 520px; }
.albums-toolbar .gallery-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 0; }
.albums-toolbar .gallery-filters label { min-width: 0; }
.albums-page .lede { margin: 0; color: rgba(244,239,230,.72); }
.albums-page .breadcrumbs, .albums-page .breadcrumbs a { color: rgba(255,252,248,.86); }
.albums-empty { color: rgba(244,239,230,.62); text-align: center; padding: 48px 16px; }
@keyframes albums-title-in {
    from { opacity: 0; transform: translateY(60px); filter: blur(12px); }
    to { opacity: 1; transform: none; filter: blur(0); }
}
@keyframes albums-rise {
    from { opacity: 0; transform: translateY(28px); }
    to { opacity: 1; transform: none; }
}
@media (min-width: 900px) {
    .albums-page { padding-top: 0; }
    .albums-page .albums-pin { padding-bottom: 0; }
    .albums-toolbar {
        grid-template-columns: minmax(0, 1fr) auto; align-items: end;
        margin-top: -190px; margin-bottom: 96px; min-height: 150px;
    }
    .albums-toolbar .gallery-filters { grid-template-columns: repeat(2, 220px); gap: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .albums-page .albums-pin h1, .albums-toolbar { animation: none; }
}
.gallery-filters { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 28px; }
.gallery-filters label { display: grid; gap: 8px; min-width: min(100%, 240px); }
.gallery-filters span {
    letter-spacing: 0.16em; text-transform: uppercase; font-size: 0.72rem; color: #c8a15e;
}
.gallery-filters select {
    appearance: none; min-height: 48px; padding: 0 40px 0 14px; width: 100%;
    border: 0; border-radius: 0; background:
        linear-gradient(#f4efe6, #f4efe6) left 0 top 0 / 8px 1px no-repeat,
        linear-gradient(#f4efe6, #f4efe6) left 0 top 0 / 1px 8px no-repeat,
        linear-gradient(#f4efe6, #f4efe6) right 0 top 0 / 8px 1px no-repeat,
        linear-gradient(#f4efe6, #f4efe6) right 0 top 0 / 1px 8px no-repeat,
        linear-gradient(#f4efe6, #f4efe6) left 0 bottom 0 / 8px 1px no-repeat,
        linear-gradient(#f4efe6, #f4efe6) left 0 bottom 0 / 1px 8px no-repeat,
        linear-gradient(#f4efe6, #f4efe6) right 0 bottom 0 / 8px 1px no-repeat,
        linear-gradient(#f4efe6, #f4efe6) right 0 bottom 0 / 1px 8px no-repeat,
        var(--select-arrow) right 14px center / 16px 16px no-repeat,
        #111;
    color: #f4efe6; cursor: pointer;
}
.gallery-filters select:focus { outline: none; background-color: #1a1a1a; }
.play-icon {
    position: absolute; left: 50%; top: 50%; width: 54px; height: 54px; border: 1px solid #fff; border-radius: 50%;
    transform: translate(-50%, -50%); background: rgba(20,18,16,.35);
}
.play-icon::after {
    content: ""; position: absolute; left: 22px; top: 17px; border-style: solid; border-width: 10px 0 10px 16px;
    border-color: transparent transparent transparent #fff;
}
.video-fallback { display: grid; place-items: center; min-height: 220px; padding: 20px; }

.filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.filters a {
    text-decoration: none; border: 1px solid var(--line); padding: 8px 14px; background: transparent; min-height: 44px; display: inline-flex; align-items: center;
}
.filters a.is-active { background: var(--ink); color: var(--white); border-color: var(--ink); }

.page-hero { padding: calc(var(--header) + 48px) 0 10px; }
.about-hero {
    position: relative; isolation: isolate; overflow: hidden;
    background: #070707; color: #f4efe6;
    display: grid; min-height: 100vh; min-height: 100svh;
}
.about-hero-media { position: relative; height: 62vh; height: 62svh; min-height: 340px; overflow: hidden; }
.about-hero-media img {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; object-position: 62% 25%;
}
.about-hero-media::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(180deg, rgba(7,7,7,.55) 0%, rgba(7,7,7,0) 28%, rgba(7,7,7,0) 60%, #070707 100%);
}
.about-hero-copy {
    position: relative; z-index: 1; align-self: center;
    width: min(100% - 40px, 560px); margin: -48px auto 0; padding: 0 0 72px;
}
.about-hero.no-media .about-hero-copy { margin-top: 0; padding-top: calc(var(--header) + 56px); }
.about-hero .eyebrow { color: #c8a15e; margin: 0 0 14px; }
.about-hero h1 {
    margin: 0 0 26px; color: #f4efe6; font-weight: 400; line-height: .9; letter-spacing: -0.035em;
    font-family: "Instrument Serif", "Cormorant Garamond", serif;
    font-size: clamp(3.6rem, 8vw, 7.4rem);
}
.about-hero .breadcrumbs { color: rgba(255,252,248,.86); margin-bottom: 26px; }
.about-hero .breadcrumbs a { color: rgba(255,252,248,.86); }
.about-hero .about-page-copy { font-size: 1.02rem; line-height: 1.75; }
.about-hero .about-page-copy > :first-child { margin-top: 0; }
.about-hero .about-page-copy > :first-child:is(p) { color: #f4efe6; font-size: 1.12rem; }
@media (max-width: 899px) {
    .about-shot img { height: auto; min-height: 0; aspect-ratio: 1 / 1; }
    .about-hero { padding-top: var(--header); min-height: 0; }
    .about-hero-media { height: auto; min-height: 0; aspect-ratio: 1 / 1; }
    .about-hero-media img { object-position: center top; }
}
@media (min-width: 900px) {
    .about-hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: stretch; }
    .about-hero.no-media { grid-template-columns: minmax(0, 1fr); }
    .about-hero-media { height: auto; min-height: 100vh; min-height: 100svh; }    .about-hero-media::after {
        background:
            linear-gradient(90deg, rgba(7,7,7,0) 78%, #070707 100%),
            linear-gradient(180deg, rgba(7,7,7,.45) 0%, rgba(7,7,7,0) 22%, rgba(7,7,7,0) 78%, rgba(7,7,7,.6) 100%);
    }
    .about-hero-copy {
        width: auto; max-width: 600px; margin: 0;
        padding: calc(var(--header) + 48px) clamp(28px, 6vw, 96px) 64px clamp(28px, 4vw, 64px);
    }
    .about-hero.no-media .about-hero-copy { margin: 0 auto; }
}
@media (prefers-reduced-motion: no-preference) {
    .about-hero-media img { animation: about-media-in 1.6s cubic-bezier(.16,1,.3,1) both; }
    .about-hero-media { animation: about-reveal 1.2s cubic-bezier(.76,0,.24,1) both; }
    .about-hero-copy > * { animation: about-copy-in .9s cubic-bezier(.16,1,.3,1) both; }
    .about-hero-copy > :nth-child(1) { animation-delay: .45s; }
    .about-hero-copy > :nth-child(2) { animation-delay: .55s; }
    .about-hero-copy > :nth-child(3) { animation-delay: .65s; }
    .about-hero-copy > :nth-child(4) { animation-delay: .8s; }
}
@keyframes about-reveal { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes about-media-in { from { transform: scale(1.18); } to { transform: scale(1); } }
@keyframes about-copy-in { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
.about-page-copy { color: rgba(244,239,230,.78); }
.about-page-copy p { margin: 0 0 1.15em; }
.about-page-copy p:last-child { margin-bottom: 0; }
.about-page-copy h2, .about-page-copy h3, .about-page-copy h4 {
    color: #fff; font-family: "Instrument Serif", "Cormorant Garamond", serif; font-weight: 400;
}
.about-page-copy a { color: #c8a15e; }
.about-page-copy img { width: 100%; margin: 1.4rem 0; }
.page-copy { max-width: 46rem; }
.prose h2, .prose h3, .prose h4 { margin-top: 1.4em; }
.prose a { color: var(--accent); }
.page-copy img { margin: 1rem 0; max-width: 100%; height: auto; }
.blog-grid { display: grid; gap: 36px; }
.blog-card .service-hit { align-content: start; }
.blog-card-copy { display: grid; gap: 8px; padding: 4px 8px 0; }
.blog-card h2, .blog-card h3 {
    margin: 0; font-family: "Instrument Serif", "Cormorant Garamond", serif; font-weight: 400;
    font-size: clamp(1.6rem, 2.4vw, 2.2rem); letter-spacing: -0.03em; line-height: 1.05;
}
.blog-card p {
    margin: 0; color: rgba(255,255,255,.68); max-width: 42ch;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.blog-card time, .blog-date { letter-spacing: 0.08em; text-transform: uppercase; font-size: 0.78rem; color: #c8a15e; }
.blog-hero {
    position: relative; isolation: isolate; overflow: hidden; min-height: 100vh; min-height: 100svh;
    display: grid; align-items: end; background: #070707; color: #fff;
}
.blog-hero-media { position: absolute; inset: 0; z-index: -1; view-transition-name: service-hero; }
.blog-hero-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.blog-hero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.55)); }
.blog-hero-title { padding: calc(var(--header) + 48px) 0 clamp(40px, 8vh, 80px); view-transition-name: service-hero-copy; }
.blog-hero h1 { margin: 0; max-width: 14ch; font-family: "Instrument Serif", "Cormorant Garamond", serif; font-weight: 400; font-size: clamp(3.2rem, 7vw, 6.4rem); line-height: .95; letter-spacing: -0.03em; }
.blog-article { background: #070707; color: #f4efe6; }
.blog-body { padding: 72px 0 96px; }
.blog-sheet { max-width: 46rem; }
.blog-body .breadcrumbs, .blog-body .breadcrumbs a { color: rgba(255,252,248,.86); }
.blog-body .lede { color: rgba(244,239,230,.86); font-size: 1.15rem; }
.blog-body .prose, .blog-body .page-copy { color: rgba(244,239,230,.78); }
.blog-body .prose a { color: #c8a15e; }
.blog-body .prose h2, .blog-body .prose h3, .blog-body .prose h4 {
    color: #fff; font-family: "Instrument Serif", "Cormorant Garamond", serif; font-weight: 400;
}
.blog-body .prose blockquote { border-left-color: rgba(200,161,94,.6); color: rgba(244,239,230,.86); }
.blog-article .section-head { margin-bottom: 20px; padding: 0 16px; }
.blog-article .section-head h2 {
    color: #f4efe6; font-family: "Instrument Serif", "Cormorant Garamond", serif; font-weight: 400;
    font-size: clamp(2.6rem, 5vw, 4.4rem);
}
.author-card { margin-top: 3.2rem; padding-top: 2rem; border-top: 1px solid rgba(244,239,230,.14); }
.author-kicker, .author-role { margin: 0; letter-spacing: 0.18em; text-transform: uppercase; font-size: 0.72rem; color: #c8a15e; }
.author-card h2 { margin: 8px 0 10px; font-family: "Instrument Serif", "Cormorant Garamond", serif; font-weight: 400; font-size: clamp(2.6rem, 5vw, 4.2rem); line-height: .95; color: #f4efe6; }
.author-bio { margin: 14px 0 0; max-width: 36rem; color: rgba(244,239,230,.55); }

.service-hero {
    position: relative; isolation: isolate; overflow: hidden;
    min-height: 100vh; min-height: 100svh;
    display: grid; align-items: end; background: #070707; color: #fff;
}
.service-hero-media { position: absolute; inset: 0; z-index: -1; view-transition-name: service-hero; }
.service-hero-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.service-hero-media::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background:
        linear-gradient(180deg, rgba(7,7,7,.6) 0%, rgba(7,7,7,0) 24%),
        linear-gradient(0deg, rgba(7,7,7,.92) 0%, rgba(7,7,7,.55) 34%, rgba(7,7,7,0) 64%);
}
.site-header { view-transition-name: site-header; }
.service-hero-copy { padding: calc(var(--header) + 48px) 0 clamp(48px, 9vh, 96px); view-transition-name: service-hero-copy; }
.service-hero h1 {
    margin: 0 0 14px; max-width: 14ch; color: #f4efe6; font-weight: 400; line-height: .92;
    font-family: "Instrument Serif", "Cormorant Garamond", serif;
    font-size: clamp(3.4rem, 9vw, 8.5rem);
}
.service-hero .lede { max-width: 36rem; margin: 0 0 14px; font-size: clamp(1rem, 1.4vw, 1.2rem); }
.service-hero .price { color: #c8a15e !important; letter-spacing: 0.04em; margin: 0 0 26px; }
::view-transition-new(service-hero-copy) { animation: service-copy-in .8s cubic-bezier(.22,1,.36,1) .5s both; }
::view-transition-old(service-hero-copy) { animation-duration: .3s; }
@keyframes service-copy-in {
    from { opacity: 0; transform: translateY(28px); }
    to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: no-preference) {
    @view-transition { navigation: auto; }
}
::view-transition-group(service-hero) {
    animation-duration: .9s;
    animation-timing-function: cubic-bezier(.76,0,.24,1);
}
::view-transition-old(service-hero), ::view-transition-new(service-hero) {
    height: 100%; object-fit: cover; animation-duration: .9s;
}
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .5s; }
.service-hero .lede, .service-hero .breadcrumbs a, .service-hero .breadcrumbs { color: rgba(255,252,248,.86); }
.service-story { background: #070707; color: #f4efe6; padding: 72px 0 96px; overflow-x: clip; }
.service-story-copy { max-width: 46rem; }
.service-story .breadcrumbs, .service-story .breadcrumbs a { color: rgba(255,252,248,.86); }
.service-story .lede { color: rgba(244,239,230,.78); }
.service-story .prose, .service-story .page-copy { color: rgba(244,239,230,.78); }
.service-story .prose a { color: #c8a15e; }
.service-story .prose h2, .service-story .prose h3, .service-story .prose h4 { color: #fff; font-family: "Instrument Serif", "Cormorant Garamond", serif; font-weight: 400; }
.service-price { margin: 0 0 1.4rem; letter-spacing: 0.06em; text-transform: uppercase; font-size: 0.82rem; color: #c8a15e; }
.service-cta { margin-top: 1.8rem; }
.service-others { background: #070707; color: #f4efe6; padding: 24px 0 110px; }
.service-others .section-head { margin-bottom: 20px; padding: 0 16px; }
.service-others .service-hit { align-content: start; }
.service-others h2 {
    color: #f4efe6; font-weight: 400; letter-spacing: -0.03em; line-height: 1;
    font-family: "Instrument Serif", "Cormorant Garamond", serif;
    font-size: clamp(2.6rem, 5vw, 4.4rem);
}
.service-album {
    display: flex; flex-direction: column; gap: 10px;
    margin-top: clamp(56px, 8vw, 96px);
}
.service-album-col { display: contents; }
.service-album-item { margin: 0; overflow: hidden; background: #111; }
.service-album-item img { width: 100%; height: auto; display: block; }
.service-album.is-armed .service-album-item {
    transform: translateY(170px);
    transition: transform 1.3s cubic-bezier(.22, 1, .36, 1);
    will-change: transform;
}
.service-album.is-armed .service-album-item.is-in { transform: none; }
@media (min-width: 700px) {
    .service-album { display: grid; grid-template-columns: 1fr 1fr; align-items: start; }
    .service-album.is-single { grid-template-columns: 1fr; }
    .service-album-col { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
}
.preview-note { margin: 0; padding: 12px 16px; background: #f3e2c2; }

.quotes { display: grid; gap: 22px; }
blockquote { margin: 0; padding: 8px 0 8px 18px; border-left: 1px solid var(--accent-2); }
blockquote p { font-family: var(--serif); font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: 1.2; }
blockquote footer { color: var(--muted); font-size: 0.95rem; }
blockquote span::before { content: " · "; }

.band { background: var(--dark); color: #fff; padding: 88px 0; }
.band-inner { max-width: 46rem; }
.band p { color: rgba(255,252,248,.8); }

.error-page {
    position: relative; overflow: hidden; display: grid; align-items: center;
    min-height: 100vh; min-height: 100svh; padding: calc(var(--header) + 48px) 0 96px;
    background: #070707; color: #f4efe6; text-align: center;
}
.error-code {
    position: absolute; left: 50%; top: 50%; margin: 0; z-index: 0; pointer-events: none; user-select: none;
    translate: -50% -50%; white-space: nowrap; line-height: .8; letter-spacing: -0.04em;
    font-family: "Instrument Serif", "Cormorant Garamond", serif; font-size: clamp(14rem, 42vw, 40rem);
    color: transparent; -webkit-text-stroke: 1px rgba(200,161,94,.22);
    animation: error-code 1.6s cubic-bezier(.16,1,.3,1) both;
}
.error-inner { position: relative; z-index: 1; display: grid; justify-items: center; }
.error-inner > * { animation: error-rise 1s cubic-bezier(.16,1,.3,1) backwards; }
.error-inner > :nth-child(2) { animation-delay: .1s; }
.error-inner > :nth-child(3) { animation-delay: .2s; }
.error-inner > :nth-child(4) { animation-delay: .3s; }
.error-page .eyebrow { margin: 0 0 18px; color: #c8a15e; }
.error-page h1 {
    margin: 0; max-width: 14ch; color: #f4efe6; font-weight: 400; line-height: .95; letter-spacing: -0.03em;
    font-family: "Instrument Serif", "Cormorant Garamond", serif; font-size: clamp(3.2rem, 8vw, 7.5rem);
    text-wrap: balance;
}
.error-page .lede { margin: 26px 0 0; max-width: 34rem; color: rgba(244,239,230,.68); }
.error-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 44px; }
@keyframes error-rise { from { opacity: 0; transform: translateY(28px); } }
@keyframes error-code { from { opacity: 0; scale: .92; } }
@media (prefers-reduced-motion: reduce) {
    .error-code, .error-inner > * { animation: none; }
}

.contact-page {
    background: #070707; color: #f4efe6; min-height: 100vh;
    padding: calc(var(--header) + 56px) 0 96px;
}
.contact-hero { margin-bottom: 42px; }
.contact-page h1 {
    margin: 0; color: #f4efe6; font-weight: 400;
    font-family: "Instrument Serif", "Cormorant Garamond", serif;
    font-size: clamp(3.4rem, 7vw, 6.4rem);
}
.contact-page .lede { color: rgba(244,239,230,.72); max-width: 40rem; }
.contact-page .breadcrumbs, .contact-page .breadcrumbs a { color: rgba(255,252,248,.86); }
.contact-aside { display: grid; gap: 36px; align-content: start; }
.contact-aside .eyebrow { color: #c8a15e; margin: 0 0 12px; }
.contact-aside h2 {
    margin: 0; color: #f4efe6; font-weight: 400; line-height: .98; letter-spacing: -0.03em; text-wrap: balance;
    font-family: "Instrument Serif", "Cormorant Garamond", serif; font-size: clamp(2.3rem, 4vw, 3.6rem);
}
.contact-label { display: block; color: #c8a15e; font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; }
.contact-list { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid rgba(244,239,230,.14); }
.contact-list li { border-top: 1px solid rgba(244,239,230,.14); }
.contact-aside-text { margin: 20px 0 0; max-width: 42ch; color: rgba(244,239,230,.68); line-height: 1.7; }
.contact-row {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 20px; align-items: center;
    padding: 20px 0; color: #f4efe6; text-decoration: none;
}
.contact-list .contact-label, .contact-list .contact-value { grid-column: 1; }
.contact-value {
    font-size: clamp(1.05rem, 1.6vw, 1.3rem); line-height: 1.35; overflow-wrap: anywhere;
    transition: color .35s ease;
}
.contact-arrow {
    grid-column: 2; grid-row: 1 / span 2; color: rgba(244,239,230,.5);
    transition: transform .6s cubic-bezier(.16,1,.3,1), color .35s ease;
}
.contact-list a:hover .contact-value, .contact-list a:focus-visible .contact-value { color: #c8a15e; }
.contact-list a:hover .contact-arrow, .contact-list a:focus-visible .contact-arrow { color: #c8a15e; transform: translateX(6px); }
@media (min-width: 768px) {
    .contact-aside { position: sticky; top: calc(var(--header) + 32px); align-self: start; padding-right: clamp(0px, 4vw, 64px); }
}
.form { display: grid; gap: 16px; }
.form-row { display: grid; gap: 16px; }
.field { display: grid; gap: 6px; }
.field label { font-size: 0.86rem; letter-spacing: 0.04em; }
.contact-page .field label { letter-spacing: 0.12em; text-transform: uppercase; font-size: 0.72rem; color: rgba(244,239,230,.72); }
.contact-page .field input, .contact-page .field select, .contact-page .field textarea {
    width: 100%; border: 0; border-radius: 0; background: #111; color: #f4efe6; padding: 12px 14px; min-height: 48px;
    color-scheme: dark;
    box-shadow:
        inset 8px 0 0 -7px #f4efe6, inset 0 8px 0 -7px #f4efe6,
        inset -8px 0 0 -7px #f4efe6, inset 0 -8px 0 -7px #f4efe6;
}
.contact-page .field select {
    appearance: none; padding-right: 42px; cursor: pointer;
    background: var(--select-arrow) right 14px center / 16px 16px no-repeat, #111;
}
.contact-page .field select option { background: #111; color: #f4efe6; }
.contact-page .field textarea { min-height: 140px; resize: vertical; }
.contact-page .field input:focus, .contact-page .field select:focus, .contact-page .field textarea:focus {
    outline: none; background-color: #1a1a1a;
}
.field input, .field select, .field textarea {
    width: 100%; border: 1px solid var(--line); background: var(--white); padding: 12px 14px; min-height: 48px;
}
.field textarea { min-height: 140px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--accent); }
.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: #8d3b32; }
.field p, .field.has-error > p { color: #8d3b32; margin: 0; font-size: 0.9rem; }
.field.check label { display: flex; gap: 10px; align-items: flex-start; }
.contact-page .field.check label {
    gap: 12px; cursor: pointer;
    text-transform: none; letter-spacing: 0.02em; font-size: 0.9rem; line-height: 1.5;
}
.contact-page .field input[type="checkbox"] {
    appearance: none; flex: none; width: 18px; height: 18px; min-height: 0; padding: 0; margin: 2px 0 0;
    background: #111; box-shadow: inset 0 0 0 1px rgba(244,239,230,.6); cursor: pointer;
    transition: background-color .2s ease, box-shadow .2s ease;
}
.contact-page .field input[type="checkbox"]:hover { box-shadow: inset 0 0 0 1px #f4efe6; }
.contact-page .field input[type="checkbox"]:checked {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.5l3 3 6-6.5' stroke='%23141414' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px 12px no-repeat, #c8a15e;
    box-shadow: inset 0 0 0 1px #c8a15e;
}
.contact-page .field input[type="checkbox"]:focus-visible { outline: 1px solid #c8a15e; outline-offset: 3px; }
.contact-page .field.has-error input[type="checkbox"] { box-shadow: inset 0 0 0 1px #e0806f; }
.hp-field { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.breadcrumbs, .breadcrumbs ol, .breadcrumbs a { color: rgba(255,252,248,.86); }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0 0 18px; font-size: 0.88rem; }
.breadcrumbs li:not(:last-child)::after { content: "/"; margin-left: 8px; }
.breadcrumbs a { text-decoration: underline; text-underline-offset: 3px; }
.page-hero .breadcrumbs, .page-hero .breadcrumbs a { color: var(--muted); }

.flash-wrap {
    position: fixed; z-index: 45; top: calc(var(--header) + 10px); left: 50%; transform: translateX(-50%);
    width: min(720px, calc(100% - 32px)); display: grid; gap: 8px;
}
.flash { margin: 0; padding: 12px 14px; background: var(--white); border: 1px solid var(--line); }
.flash-error { border-color: #e3b6b0; background: #fdf4f2; }
.flash-success { border-color: #c9d7c4; background: #f4f8f2; }
.empty { color: var(--muted); }

.pager { display: flex; gap: 16px; align-items: center; justify-content: center; margin-top: 28px; }
.pager a { color: var(--accent); }

.reviews { background: #070707; color: #f4efe6; padding: 88px 0; }
.reviews-panel {
    background: #0c0c0c; border: 1px solid rgba(255,255,255,.08);
    padding: 64px 0 60px; overflow: hidden;
}
.reviews-head { text-align: center; margin-bottom: 48px; padding: 0 24px; }
.reviews-head p { margin: 0 0 8px; letter-spacing: 0.01em; }
.reviews-head h2 { margin: 0; color: #ff5a1f; font-size: clamp(3rem, 6vw, 5.2rem); font-weight: 500; }
.reviews-marquee {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.reviews-marquee-track {
    display: flex; width: max-content;
    animation: reviews-marquee var(--marquee-duration, 40s) linear infinite;
}
.reviews-marquee:hover .reviews-marquee-track { animation-play-state: paused; }
.reviews-marquee-group { display: flex; flex: none; }
@keyframes reviews-marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
.review-card {
    flex: none; width: 330px; box-sizing: border-box; padding: 4px 30px 8px;
    display: flex; flex-direction: column;
}
.review-avatar {
    width: 58px; height: 58px; margin: 0 0 22px; position: relative;
    display: grid; place-items: center;
    background:
        linear-gradient(#fff, #fff) left top / 11px 1px no-repeat,
        linear-gradient(#fff, #fff) left top / 1px 11px no-repeat,
        linear-gradient(#fff, #fff) right top / 11px 1px no-repeat,
        linear-gradient(#fff, #fff) right top / 1px 11px no-repeat,
        linear-gradient(#fff, #fff) left bottom / 11px 1px no-repeat,
        linear-gradient(#fff, #fff) left bottom / 1px 11px no-repeat,
        linear-gradient(#fff, #fff) right bottom / 11px 1px no-repeat,
        linear-gradient(#fff, #fff) right bottom / 1px 11px no-repeat;
}
.review-avatar img, .review-avatar span {
    width: 42px; height: 42px; border-radius: 50%; object-fit: cover;
    display: grid; place-items: center; background: #2a2a2a; color: #fff; font-weight: 600;
}
.review-card p {
    flex: 1; margin: 0 0 20px; padding-bottom: 22px;
    border-bottom: 1px solid rgba(255,255,255,.1);
    color: rgba(244,239,230,.82); font-size: 0.96rem; line-height: 1.6;
}
.review-card p::before { content: "\201C"; }
.review-card p::after { content: "\201D"; }
.review-card h3 { margin: 0 0 4px; font-family: var(--sans); font-size: 1.05rem; letter-spacing: 0; font-weight: 650; }
.review-card > span { display: block; color: rgba(244,239,230,.55); font-size: 0.88rem; margin-bottom: 12px; }
.review-stars { color: #ff5a1f; letter-spacing: 0.12em; font-size: 0.95rem; }
.review-stars span { color: rgba(255,90,31,.28); }
@media (max-width: 699px) {
    .reviews { padding: 56px 0; }
    .reviews-panel { padding: 48px 0 44px; }
    .reviews-head { margin-bottom: 36px; }
    .review-card { width: 280px; padding: 4px 22px 8px; }
}
@media (prefers-reduced-motion: reduce) {
    .reviews-marquee { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
    .reviews-marquee-track { animation: none; }
    .reviews-marquee-group[aria-hidden="true"] { display: none; }
}

.faq-section { background: #0c0c0c; color: #f6f3ee; padding: 96px 0; }
.faq-section .eyebrow { color: #c8a15e; }
.faq-section h2 { color: #fff; max-width: 10em; }
.faq-layout { display: grid; gap: 36px; align-items: start; }
.faq-list { border-bottom: 1px solid rgba(255,255,255,.16); }
.faq-item { border-top: 1px solid rgba(255,255,255,.16); }
.faq-item summary {
    cursor: pointer; list-style: none; padding: 22px 36px 22px 0;
    font-size: 1.15rem; line-height: 1.35; position: relative;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
    content: "+"; position: absolute; right: 0; top: 18px;
    color: #c8a15e; font-size: 1.4rem; line-height: 1;
    transition: transform .4s cubic-bezier(.22,.61,.36,1);
}
.faq-item.is-open summary::after { transform: rotate(45deg); }
.faq-body { height: 0; overflow: hidden; transition: height .4s cubic-bezier(.22,.61,.36,1); }
.faq-item p { margin: 0 0 22px; max-width: 46rem; color: rgba(246,243,238,.72); }
@media (min-width: 900px) {
    .faq-layout { grid-template-columns: 0.7fr 1.3fr; gap: 64px; }
}

.talk-cta {
    position: relative; background: #c8a15e; color: #141414;
    min-height: 640px; display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 48px; padding: 120px 40px 90px; overflow: hidden;
}
.talk-corner { position: absolute; width: 40px; height: 40px; overflow: hidden; z-index: 2; }
.talk-corner i, .talk-corner b { position: absolute; display: block; background: #000; width: 1px; height: 60px; }
.talk-corner i { top: 0; left: 0; }
.talk-corner b { top: -29px; left: 29px; transform: rotate(90deg); }
.talk-corner.tl { top: 40px; left: 40px; }
.talk-corner.tr { top: 40px; right: 40px; transform: rotate(90deg); }
.talk-corner.br { bottom: 40px; right: 40px; transform: rotate(180deg); }
.talk-corner.bl { bottom: 40px; left: 40px; transform: rotate(270deg); }
.shutter {
    position: relative; display: grid; place-items: center; width: 216px; height: 216px; padding: 7px;
    border: 1px solid rgba(255,255,255,.5); border-radius: 50%; text-decoration: none; color: #000;
}
.iris {
    position: relative; width: 200px; height: 200px; border-radius: 300px; overflow: hidden;
}
.iris::after {
    content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none;
    border: 3px solid #faf5ea; border-radius: inherit;
}
.iris-fill {
    position: absolute; z-index: 0; left: 50%; top: 50%; width: 150px; height: 150px;
    margin: -75px 0 0 -75px; border-radius: 50%; background: #faf5eb;
    opacity: 0; pointer-events: none;
    transition: opacity 1.15s cubic-bezier(.22,.61,.36,1);
}
.blade {
    position: absolute; z-index: 1; width: 118px; height: 103px; pointer-events: none;
    transition: top 1.15s cubic-bezier(.22,.61,.36,1), right 1.15s cubic-bezier(.22,.61,.36,1), bottom 1.15s cubic-bezier(.22,.61,.36,1), left 1.15s cubic-bezier(.22,.61,.36,1);
}
.blade svg { display: block; width: 100%; height: 100%; }
.b1 { bottom: 3px; left: -42px; }
.b2 { bottom: -45px; right: 39px; transform: rotate(-60deg); }
.b3 { bottom: 4px; right: -42px; transform: rotate(-120deg); }
.b4 { top: -2px; right: -40px; transform: rotate(-180deg); }
.b5 { top: -45px; left: 40px; transform: rotate(-240deg); }
.b6 { top: 4px; left: -46px; transform: rotate(-300deg); }
.shutter:hover .iris-fill, .shutter:focus-visible .iris-fill { opacity: 1; }
.shutter:hover .b1, .shutter:focus-visible .b1 { bottom: -1px; left: -16px; }
.shutter:hover .b2, .shutter:focus-visible .b2 { bottom: -26px; right: 27px; }
.shutter:hover .b3, .shutter:focus-visible .b3 { bottom: 23px; right: -30px; }
.shutter:hover .b4, .shutter:focus-visible .b4 { top: -1px; right: -17px; }
.shutter:hover .b5, .shutter:focus-visible .b5 { top: -25px; left: 29px; }
.shutter:hover .b6, .shutter:focus-visible .b6 { top: 24px; left: -30px; }
.talk {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 2;
    font-size: 18px; font-weight: 500; line-height: 1.5; color: #000; white-space: nowrap; pointer-events: none;
}
.talk-links { display: flex; flex-direction: column; align-items: center; gap: 9px; width: 100%; }
.talk-email { color: #141414; font-size: clamp(1.6rem, 3vw, 2.5rem); font-weight: 600; line-height: 1.4; text-decoration: none; }
.talk-email:hover { text-decoration: underline; }
.talk-socials { display: flex; flex-wrap: wrap; justify-content: center; gap: 33px; margin-top: 18px; }
.talk-socials a { display: inline-flex; align-items: center; gap: 6px; color: #141414; font-size: 15px; font-weight: 500; letter-spacing: -0.02em; text-decoration: none; }
.talk-socials a:hover { text-decoration: underline; }
.talk-socials svg { display: block; width: 22px; height: 22px; flex: none; }
.site-footer { background: #000; color: #f4efe6; padding: 36px 0 0; overflow: hidden; }
.footer-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px 28px; }
.footer-nav a { color: #f4efe6; text-decoration: none; font-size: 0.92rem; }
.footer-nav a[aria-current="page"] { color: #ff744a; }
.footer-legal { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 16px; margin: 18px 0 8px; color: rgba(244,239,230,.55); font-size: 0.78rem; }
.footer-legal a { color: inherit; text-decoration: none; }
.footer-credit { margin: 0 0 4px; text-align: center; color: rgba(244,239,230,.45); font-size: 0.78rem; letter-spacing: 0.04em; }
.footer-credit a { color: #f4efe6; text-decoration: none; border-bottom: 1px solid rgba(244,239,230,.35); }
.footer-credit a:hover { color: #ff744a; border-bottom-color: #ff744a; }
.footer-marquee { overflow: hidden; margin-top: 18px; }
.footer-marquee-track {
    display: flex; width: max-content; gap: 0.45em;
    animation: footer-marquee 28s linear infinite;
}
.footer-marquee-track span {
    font-weight: 500; letter-spacing: -0.045em; white-space: nowrap;
    font-size: clamp(4.2rem, 12vw, 10rem); line-height: 0.85; color: #f3efe6;
}
@keyframes footer-marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

.cookie-bar {
    position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 50;
    display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between;
    background: var(--white); border: 1px solid var(--line); padding: 14px 16px; box-shadow: var(--shadow);
}
.cookie-bar[hidden] { display: none; }
.cookie-bar p { margin: 0; }
.cookie-bar button { min-height: 44px; border: 0; background: var(--ink); color: #fff; padding: 0 16px; cursor: pointer; }

.lightbox {
    position: fixed; inset: 0; z-index: 70; background: rgba(7, 7, 7, 0.96); color: #fff;
    display: grid; grid-template-rows: auto 1fr auto; padding: 16px;
}
.lightbox[hidden] { display: none; }
.lightbox-stage { display: grid; place-items: center; min-height: 0; }
.lightbox-stage img, .lightbox-stage iframe { max-width: min(1100px, 92vw); max-height: 78vh; width: auto; height: auto; }
.lightbox-stage img { transform-origin: 50% 50%; will-change: transform, clip-path; }
.lightbox-stage iframe { width: min(1000px, 92vw); height: min(70vh, 56vw); background: #000; border: 0; }
.lightbox-caption {
    text-align: center; margin: 10px 0 0; color: rgba(244,239,230,.82);
    font-family: "Instrument Serif", "Cormorant Garamond", serif; font-size: clamp(1.15rem, 1.8vw, 1.5rem); letter-spacing: -0.01em;
}
.gallery-card.is-source { visibility: hidden; }
.lightbox button {
    appearance: none; -webkit-appearance: none;
    margin: 0; cursor: pointer; color: #f4efe6;
    letter-spacing: 0.16em; text-transform: uppercase; font-size: 0.72rem;
    background:
        linear-gradient(#f4efe6, #f4efe6) left 0 top 0 / 10px 1px no-repeat,
        linear-gradient(#f4efe6, #f4efe6) left 0 top 0 / 1px 10px no-repeat,
        linear-gradient(#f4efe6, #f4efe6) right 0 top 0 / 10px 1px no-repeat,
        linear-gradient(#f4efe6, #f4efe6) right 0 top 0 / 1px 10px no-repeat,
        linear-gradient(#f4efe6, #f4efe6) left 0 bottom 0 / 10px 1px no-repeat,
        linear-gradient(#f4efe6, #f4efe6) left 0 bottom 0 / 1px 10px no-repeat,
        linear-gradient(#f4efe6, #f4efe6) right 0 bottom 0 / 10px 1px no-repeat,
        linear-gradient(#f4efe6, #f4efe6) right 0 bottom 0 / 1px 10px no-repeat,
        #0c0c0c;
    border: 0;
}
.lightbox button:hover {
    color: #0c0c0c;
    background:
        linear-gradient(#0c0c0c, #0c0c0c) left 0 top 0 / 10px 1px no-repeat,
        linear-gradient(#0c0c0c, #0c0c0c) left 0 top 0 / 1px 10px no-repeat,
        linear-gradient(#0c0c0c, #0c0c0c) right 0 top 0 / 10px 1px no-repeat,
        linear-gradient(#0c0c0c, #0c0c0c) right 0 top 0 / 1px 10px no-repeat,
        linear-gradient(#0c0c0c, #0c0c0c) left 0 bottom 0 / 10px 1px no-repeat,
        linear-gradient(#0c0c0c, #0c0c0c) left 0 bottom 0 / 1px 10px no-repeat,
        linear-gradient(#0c0c0c, #0c0c0c) right 0 bottom 0 / 10px 1px no-repeat,
        linear-gradient(#0c0c0c, #0c0c0c) right 0 bottom 0 / 1px 10px no-repeat,
        #c4a574;
}
.lightbox button { display: inline-grid; place-items: center; }
.lightbox button svg { display: block; transition: transform .45s cubic-bezier(.16,1,.3,1); }
.lightbox-close { position: relative; z-index: 2; justify-self: end; width: 52px; height: 52px; padding: 0; }
.lightbox-close:hover svg { transform: rotate(90deg); }
.lightbox-nav {
    position: absolute; z-index: 2; top: 50%; transform: translateY(-50%);
    width: 52px; height: 52px; padding: 0;
}
.lightbox-prev { left: 18px; }
.lightbox-next { right: 18px; }
.lightbox-prev:hover svg { transform: translateX(-3px); }
.lightbox-next:hover svg { transform: translateX(3px); }
.lightbox button:focus:not(:focus-visible) { outline: none; }
@media (max-width: 899px) {
    .lightbox {
        padding: 12px 12px 20px; column-gap: 12px;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto 1fr auto auto auto 1fr;
        grid-template-areas: "close close" ". ." "stage stage" "caption caption" "prev next" ". .";
    }
    .lightbox-close { grid-area: close; width: 46px; height: 46px; }
    .lightbox-stage { grid-area: stage; }
    .lightbox-stage img, .lightbox-stage iframe { max-width: calc(100vw - 24px); max-height: calc(100svh - 250px); }
    .lightbox-caption { grid-area: caption; margin: 16px 0 0; padding: 0 8px; font-size: 1.15rem; line-height: 1.25; }
    .lightbox .lightbox-nav { grid-area: prev; position: relative; top: auto; transform: none; width: 46px; height: 46px; margin-top: 18px; }
    .lightbox .lightbox-prev { left: auto; justify-self: end; }
    .lightbox .lightbox-next { grid-area: next; right: auto; justify-self: start; }
}

@media (min-width: 480px) {
    .container, .container-wide { width: min(1440px, calc(100% - 48px)); }
}
@media (min-width: 768px) {
    .split { grid-template-columns: 0.8fr 1.2fr; align-items: start; }
    .service-grid, .blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .about-grid, .contact-layout, .about-layout { grid-template-columns: 1.05fr 0.95fr; }
    .form-row { grid-template-columns: 1fr 1fr; }
    .quotes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .masonry { columns: 3; column-gap: 14px; }
    .masonry-item { margin-bottom: 14px; }
    .stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
    .service-grid, .blog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1280px) {
    .container, .container-wide { width: min(1440px, calc(100% - 64px)); }
    .masonry { columns: 4; }
}
@media (max-width: 800px) {
    .talk-corner.tl, .talk-corner.tr { top: 16px; }
    .talk-corner.bl, .talk-corner.br { bottom: 16px; }
    .talk-corner.tl, .talk-corner.bl { left: 16px; }
    .talk-corner.tr, .talk-corner.br { right: 16px; }
    .talk-cta { padding: 100px 20px 70px; gap: 36px; min-height: 520px; }
    .talk-socials { gap: 14px 22px; }
}
@media (max-width: 767px) {
    .brand img { height: 54px; }
    .nav-toggle { display: block; z-index: 41; }
    .site-header.is-menu, body:not(.home) .site-header.is-menu {
        background: #0c0c0c; border-bottom-color: transparent;
        -webkit-backdrop-filter: none; backdrop-filter: none;
    }
    .site-nav {
        display: flex; position: fixed; left: 0; right: 0; top: var(--header); width: 100%;
        height: calc(100dvh - var(--header));
        background: #0c0c0c; color: #fff; flex-direction: column; align-items: center;
        gap: 4px; padding: 36px 28px 32px; z-index: 39; overflow: auto;
        opacity: 0; visibility: hidden; pointer-events: none;
        transform: translateY(-18px);
        transition: opacity .35s ease, transform .5s cubic-bezier(.16,1,.3,1), visibility .5s;
    }
    .site-nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
    .site-nav > a, .site-nav .nav-socials { opacity: 0; transform: translateY(-18px); }
    .site-nav.is-open > a, .site-nav.is-open .nav-socials { animation: nav-drop .55s cubic-bezier(.16,1,.3,1) both; }
    .site-nav.is-open > a:nth-child(1) { animation-delay: .08s; }
    .site-nav.is-open > a:nth-child(2) { animation-delay: .14s; }
    .site-nav.is-open > a:nth-child(3) { animation-delay: .2s; }
    .site-nav.is-open > a:nth-child(4) { animation-delay: .26s; }
    .site-nav.is-open > a:nth-child(5) { animation-delay: .32s; }
    .site-nav.is-open > a:nth-child(6) { animation-delay: .38s; }
    .site-nav.is-open .nav-socials { animation-delay: .46s; }
    .site-nav > a { min-height: 52px; width: 100%; display: flex; align-items: center; justify-content: center; font-size: 1.35rem; padding: 8px 4px; }
    .nav-socials {
        display: flex; align-items: center; justify-content: center; gap: 22px; margin-top: auto; padding-top: 28px; width: 100%;
    }
    .nav-socials a { min-height: 44px; padding: 0; color: #fff; }
    .nav-socials a::before { display: none; }
    .nav-socials svg { display: block; width: 22px; height: 22px; fill: currentColor; }
    .lm-name { max-width: 100%; }
}
@keyframes nav-drop {
    from { opacity: 0; transform: translateY(-18px); }
    to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    * { transition: none !important; animation: none !important; }
}
