:root { --ink:#0b0b0c; --ink-2:#1a1a1c; --paper:#f3f0e9; --white:#ffffff; --muted:#6b675f; --muted-d:#a39e93; --line:#d9d4c8; --line-d:#2c2c2f; --gold:#c9a24b; --gold-d:#a8832f; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font:17px/1.6 Archivo, "Helvetica Neue", Arial, sans-serif; color:var(--ink); background:var(--white); -webkit-font-smoothing:antialiased; }
img { max-width:100%; height:auto; display:block; }
a { color:inherit; }
.wrap { max-width:1240px; margin:0 auto; padding:0 32px; }
.display { font-family:Anton, Impact, "Arial Narrow", sans-serif; font-weight:400; text-transform:uppercase; letter-spacing:.005em; line-height:.92; margin:0; }
.eyebrow { font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; margin:0 0 22px; }

/* header */
.top { background:var(--ink); color:var(--white); position:sticky; top:0; z-index:20; border-bottom:1px solid var(--line-d); }
.top .wrap { display:flex; align-items:center; justify-content:space-between; min-height:76px; gap:20px; }
.logo img { height:34px; width:auto; }
nav { display:flex; align-items:center; gap:34px; }
nav a { text-decoration:none; font-size:13px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#d8d4cb; }
nav a:hover { color:var(--white); }
nav a.cta { color:var(--white); border-bottom:2px solid var(--gold); padding-bottom:3px; }

/* buttons */
.btn { display:inline-flex; align-items:center; gap:12px; background:var(--gold); color:var(--ink); text-decoration:none; font-weight:700; font-size:14px; letter-spacing:.1em; text-transform:uppercase; padding:18px 30px; border:0; }
.btn:hover { background:#d8b25a; }
.btn .arr { font-size:18px; line-height:1; }
.btn.dark { background:var(--ink); color:var(--white); }
.btn.dark:hover { background:#26262a; }
.btn.sm { padding:11px 18px; font-size:12px; }
.textlink { font-weight:600; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:2px; }

/* hero */
.hero { background:var(--ink); color:var(--white); padding:96px 0 0; overflow:hidden; }
.hero .eyebrow { color:var(--gold); }
.hero h1 { font-size:clamp(64px,11.5vw,168px); }
.hero h1 span { color:var(--gold); display:block; }
.hero-row { display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:end; margin-top:44px; }
.hero-row p { font-size:20px; line-height:1.55; color:#cfcac0; margin:0; max-width:560px; }
.hero-row .act { display:flex; gap:28px; align-items:center; flex-wrap:wrap; justify-self:end; }
.hero-row .act .textlink { color:var(--white); }
.shot-hero { margin-top:80px; border:1px solid var(--line-d); border-bottom:0; box-shadow:0 -30px 80px rgba(201,162,75,.08); max-height:520px; overflow:hidden; }

/* statement band */
.band { background:var(--paper); padding:110px 0; }
.band h2 { font-size:clamp(44px,7vw,104px); text-align:center; }
.facts { display:grid; grid-template-columns:repeat(3,1fr); margin-top:80px; border-top:1px solid var(--line); }
.facts div { padding:34px 30px 0; border-left:1px solid var(--line); }
.facts div:first-child { border-left:0; padding-left:0; }
.facts b { font-family:Anton, Impact, sans-serif; font-weight:400; font-size:64px; line-height:1; display:block; margin-bottom:12px; }
.facts span { color:var(--muted); font-size:16px; display:block; max-width:300px; }

/* sections */
.sec { padding:120px 0; }
.sec-head { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:end; margin-bottom:64px; }
.sec-head h2 { font-size:clamp(44px,6vw,88px); }
.sec-head p { color:var(--muted); font-size:19px; margin:0; max-width:520px; }
.eyebrow.ink { color:var(--muted); }

.designs { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.designs figure { margin:0; }
.designs .frame { border:1px solid var(--line); background:var(--paper); aspect-ratio:16/10; overflow:hidden; }
.designs .frame img { width:100%; height:100%; object-fit:cover; object-position:top left; transition:transform .5s ease; }
.designs figure:hover img { transform:scale(1.03); }
.designs figcaption { display:flex; justify-content:space-between; gap:12px; border-top:2px solid var(--ink); margin-top:18px; padding-top:14px; font-size:15px; color:var(--muted); }
.designs figcaption b { color:var(--ink); font-size:15px; letter-spacing:.1em; text-transform:uppercase; }

/* what we do list */
.split { display:grid; grid-template-columns:.8fr 1.2fr; gap:72px; }
.split .stick { position:sticky; top:120px; align-self:start; }
.split h2 { font-size:clamp(44px,6vw,88px); }
.split .stick p { color:var(--muted); font-size:18px; margin:26px 0 0; max-width:380px; }
.list { list-style:none; margin:0; padding:0; border-top:1px solid var(--ink); }
.list li { display:grid; grid-template-columns:72px 1fr; gap:20px; padding:30px 0; border-bottom:1px solid var(--line); }
.list .n { font-family:Anton, Impact, sans-serif; font-size:30px; color:var(--gold-d); line-height:1.1; }
.list h3 { font-size:24px; font-weight:600; letter-spacing:-.01em; margin:0 0 8px; }
.list p { color:var(--muted); margin:0; font-size:17px; }

/* niches */
.niches { background:var(--ink); color:var(--white); }
.niches .eyebrow { color:var(--gold); }
.niche-list { list-style:none; margin:40px 0 0; padding:0; border-top:1px solid var(--line-d); }
.niche-list li { display:flex; justify-content:space-between; align-items:baseline; gap:24px; border-bottom:1px solid var(--line-d); padding:22px 0 18px; }
.niche-list .display { font-size:clamp(40px,7vw,96px); }
.niche-list small { font-size:13px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--muted-d); white-space:nowrap; }
.niche-list small.on { color:var(--gold); }
.niches .note { color:#bdb8ad; font-size:18px; max-width:640px; margin:40px 0 0; }

/* standards */
.standards .cols { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--ink); }
.standards .cols div { padding:30px 34px 0 0; }
.standards .cols div + div { padding-left:34px; border-left:1px solid var(--line); }
.standards h3 { font-size:20px; font-weight:600; margin:0 0 10px; }
.standards p { color:var(--muted); margin:0; font-size:17px; }

/* faq */
.faq { background:var(--paper); }
.faq details { border-bottom:1px solid var(--line); padding:26px 0; }
.faq details:first-of-type { border-top:1px solid var(--ink); }
.faq summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:24px; font-size:22px; font-weight:600; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"+"; font-weight:400; font-size:28px; line-height:1; color:var(--gold-d); }
.faq details[open] summary::after { content:"\2212"; }
.faq details p { color:var(--muted); margin:14px 0 0; max-width:760px; font-size:18px; }

/* closing */
.close { padding:140px 0; text-align:left; }
.close h2 { font-size:clamp(64px,12vw,176px); }
.close h2 span { color:var(--gold-d); }
.close .row { display:flex; justify-content:space-between; align-items:center; gap:32px; flex-wrap:wrap; margin-top:48px; border-top:1px solid var(--ink); padding-top:32px; }
.close .row p { font-size:19px; color:var(--muted); margin:0; max-width:560px; }

/* footer */
footer { background:var(--ink); color:#a39e93; font-size:14px; }
footer .wrap { display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; padding-top:40px; padding-bottom:40px; }
footer img { height:26px; width:auto; }
footer a { color:#d8d4cb; text-decoration:none; margin-left:24px; }
footer a:hover { color:var(--white); }

/* inner pages */
.page-head { background:var(--ink); color:var(--white); padding:80px 0 60px; }
.page-head .eyebrow { color:var(--gold); }
.page-head h1 { font-size:clamp(56px,9vw,120px); }
.page-head p { color:#cfcac0; font-size:19px; max-width:620px; margin:24px 0 0; }
.prose { max-width:780px; padding:72px 32px 100px; }
.prose h2 { font-size:22px; margin:40px 0 10px; }
.prose p, .prose li { color:#3d3a35; }
.booking { border:1px solid var(--line); padding:8px; margin:56px 0 24px; background:var(--white); }
.muted { color:var(--muted); }

@media (max-width:980px) {
  .hero-row, .sec-head, .split { grid-template-columns:1fr; gap:28px; }
  .hero-row .act { justify-self:start; }
  .split .stick { position:static; }
  .designs { grid-template-columns:1fr; }
  .standards .cols { grid-template-columns:1fr; }
  .standards .cols div, .standards .cols div + div { padding:26px 0; border-left:0; border-bottom:1px solid var(--line); }
}
@media (max-width:720px) {
  .wrap { padding:0 16px; }
  nav a:not(.cta) { display:none; }
  .hero { padding-top:64px; }
  .shot-hero { margin-top:56px; }
  .band, .sec, .close { padding:76px 0; }
  .facts { grid-template-columns:1fr; margin-top:48px; }
  .facts div, .facts div:first-child { border-left:0; padding:26px 0; border-bottom:1px solid var(--line); }
  .list li { grid-template-columns:48px 1fr; }
  .niche-list li { flex-direction:column; gap:6px; }
  .faq summary { font-size:19px; }
  footer a { margin:0 18px 0 0; }
}
