/* Site chrome — header, footer, hero composition */

/* ---------- Top navigation ---------- */
.site-nav {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--c-paper);
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s var(--ease-out), background 0.3s var(--ease-out);
}
.site-nav.is-scrolled {
  border-bottom-color: var(--c-rule-soft);
  background: color-mix(in oklab, var(--c-paper) 92%, transparent);
  backdrop-filter: saturate(140%) blur(6px);
}
.site-nav .inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--nav-h);
  padding-inline: var(--pad-x);
}
.site-nav .brand {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  font-family: var(--f-display);
  font-weight: 500;
  font-size: clamp(18px, 1.6vw, 22px);
  letter-spacing: -0.01em;
  color: var(--c-ink);
}
.site-nav .brand .dot { color: var(--c-accent); }
.site-nav .brand small {
  font-family: var(--f-mono);
  font-weight: 400;
  font-size: var(--t-mono);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-ink-3);
  margin-left: 8px;
}
.site-nav ul {
  list-style: none;
  display: flex;
  align-items: center;
  gap: clamp(14px, 2vw, 28px);
}
.site-nav a.lnk {
  font-family: var(--f-mono);
  font-size: var(--t-mono);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-ink-2);
  position: relative;
  padding-block: 6px;
  transition: color 0.2s var(--ease-out);
}
.site-nav a.lnk::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: var(--c-accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s var(--ease-out);
}
.site-nav a.lnk:hover { color: var(--c-ink); }
.site-nav a.lnk:hover::after,
.site-nav a.lnk[aria-current="page"]::after { transform: scaleX(1); }
.site-nav a.lnk[aria-current="page"] { color: var(--c-ink); }
.site-nav a.lnk.deck {
  color: var(--c-accent);
}
.site-nav a.lnk.deck::after { background: var(--c-accent); }

.nav-toggle {
  display: none;
  width: 40px;
  height: 40px;
  position: relative;
}
.nav-toggle::before,
.nav-toggle::after {
  content: "";
  position: absolute;
  left: 8px; right: 8px;
  height: 1px;
  background: var(--c-ink);
  transition: transform 0.3s var(--ease-out), top 0.3s var(--ease-out);
}
.nav-toggle::before { top: 16px; }
.nav-toggle::after { top: 22px; }
.nav-toggle[aria-expanded="true"]::before { top: 19px; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"]::after { top: 19px; transform: rotate(-45deg); }

@media (max-width: 820px) {
  .nav-toggle { display: block; }
  .site-nav ul {
    position: absolute;
    top: var(--nav-h);
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    background: var(--c-paper);
    border-bottom: 1px solid var(--c-rule-soft);
    padding: 24px var(--pad-x) 32px;
    transform: translateY(-12px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s var(--ease-out), transform 0.25s var(--ease-out);
  }
  .site-nav ul li { padding-block: 10px; width: 100%; border-top: 1px solid var(--c-rule-soft); }
  .site-nav ul li:first-child { border-top: 0; }
  .site-nav[data-open="true"] ul {
    transform: none;
    opacity: 1;
    pointer-events: auto;
  }
}

/* ---------- Hero ---------- */
.hero {
  position: relative;
  min-height: clamp(560px, 80vh, 880px);
  padding-block: clamp(80px, 12vw, 160px);
  overflow: hidden;
}
.hero .cover-grid {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: clamp(32px, 5vw, 64px);
  min-height: clamp(420px, 60vh, 720px);
  position: relative;
  z-index: 2;
}
.hero .cover-meta {
  text-align: right;
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 2vw, 28px);
  padding-bottom: 12px;
}

@media (max-width: 720px) {
  .hero .cover-grid { grid-template-columns: 1fr; }
  .hero .cover-meta { text-align: left; }
}

/* ---------- Section heads ---------- */
.section-head {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(24px, 5vw, 96px);
  align-items: end;
  margin-bottom: clamp(40px, 6vw, 80px);
}
.section-head h2 { max-width: 18ch; }
.section-head p { max-width: 48ch; }

@media (max-width: 900px) {
  .section-head { grid-template-columns: 1fr; align-items: start; }
}

/* ---------- Work preview grid (home) ---------- */
.work-preview {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(20px, 3vw, 40px);
}
.work-preview .item {
  display: grid;
  gap: clamp(16px, 1.6vw, 22px);
}
.work-preview .frame-img { aspect-ratio: 16 / 9; }
.work-preview .frame-img img { object-fit: contain; }
.work-preview .meta-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: baseline;
}
.work-preview h3 {
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(24px, 2.6vw, 36px);
  line-height: 1.1;
}

@media (max-width: 720px) {
  .work-preview { grid-template-columns: 1fr; }
}

/* ---------- CTA strip (closing on most pages) ---------- */
.cta-strip {
  display: grid;
  grid-template-columns: 1.3fr 0.7fr;
  gap: clamp(28px, 5vw, 64px);
  align-items: end;
  padding-block: clamp(80px, 10vw, 140px);
  border-top: 1px solid var(--c-ink);
}
.cta-strip h2.end-title { max-width: 18ch; }
.cta-strip .right {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-bottom: 8px;
}

@media (max-width: 900px) {
  .cta-strip { grid-template-columns: 1fr; align-items: start; }
}

/* ---------- Footer ---------- */
.site-foot {
  background: var(--c-paper-2);
  padding: clamp(48px, 6vw, 80px) var(--pad-x) clamp(28px, 3vw, 40px);
  border-top: 1px solid var(--c-rule-soft);
}
.site-foot .grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: clamp(24px, 4vw, 64px);
  padding-bottom: clamp(40px, 5vw, 64px);
  border-bottom: 1px solid var(--c-rule-soft);
  margin-bottom: clamp(20px, 2.5vw, 28px);
}
.site-foot h4 {
  font-family: var(--f-mono);
  font-size: var(--t-mono);
  font-weight: 400;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-ink-3);
  margin-bottom: 16px;
}
.site-foot ul { list-style: none; display: grid; gap: 8px; }
.site-foot a { color: var(--c-ink-2); transition: color 0.2s var(--ease-out); }
.site-foot a:hover { color: var(--c-ink); }
.site-foot .brand-line {
  font-family: var(--f-display);
  font-weight: 300;
  font-size: clamp(28px, 3vw, 44px);
  line-height: 1.1;
  letter-spacing: -0.01em;
  max-width: 16ch;
  margin-bottom: 16px;
}
.site-foot .brand-line em {
  font-family: var(--f-serif);
  font-style: italic;
  font-weight: 400;
}
.site-foot .legal {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  font-family: var(--f-mono);
  font-size: var(--t-mono);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-ink-3);
}
.site-foot .legal .accent { color: var(--c-accent); }

@media (max-width: 900px) {
  .site-foot .grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 540px) {
  .site-foot .grid { grid-template-columns: 1fr; }
  .site-foot .legal { flex-direction: column; align-items: start; gap: 12px; }
}

/* ---------- Page lead / sub head ---------- */
.page-lead {
  display: grid;
  grid-template-columns: 0.4fr 1fr;
  gap: clamp(24px, 4vw, 64px);
  align-items: end;
  padding-block: clamp(80px, 10vw, 140px);
  border-bottom: 1px solid var(--c-rule-soft);
}
.page-lead h1 { max-width: 16ch; }
.page-lead p { max-width: 40ch; }

@media (max-width: 900px) {
  .page-lead { grid-template-columns: 1fr; align-items: start; }
}

/* ---------- Inline image card (positioning slide) ---------- */
.inline-figure {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--c-rule);
  background: var(--c-paper-3);
  aspect-ratio: 3 / 2;
}
.inline-figure img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Contact form ---------- */
.form-card {
  display: grid;
  grid-template-columns: 0.45fr 1fr;
  gap: clamp(24px, 5vw, 80px);
  align-items: start;
}
.form-card .left { display: grid; gap: 24px; }
.form-card h2 { max-width: 14ch; }
.form-card form { display: grid; gap: clamp(16px, 2vw, 22px); }
.form-card label {
  display: grid;
  gap: 8px;
  font-family: var(--f-mono);
  font-size: var(--t-mono);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-ink-2);
}
.form-card input,
.form-card textarea {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--c-rule);
  padding: 12px 0;
  font: 300 var(--t-body)/1.4 var(--f-body);
  color: var(--c-ink);
  letter-spacing: normal;
  text-transform: none;
}
.form-card input:focus,
.form-card textarea:focus {
  outline: 0;
  border-bottom-color: var(--c-accent);
}
.form-card textarea { min-height: 140px; resize: vertical; }
.form-card button[type="submit"] {
  justify-self: start;
  font-family: var(--f-mono);
  font-size: var(--t-mono);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  padding: 16px 28px;
  background: var(--c-ink);
  color: var(--c-paper);
  transition: background 0.2s var(--ease-out);
}
.form-card button[type="submit"]:hover { background: var(--c-accent); }

@media (max-width: 900px) {
  .form-card { grid-template-columns: 1fr; }
}

/* ---------- Skip-to-content for accessibility ---------- */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--c-ink);
  color: var(--c-paper);
  padding: 12px 20px;
  font-family: var(--f-mono);
  font-size: var(--t-mono);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  z-index: 100;
}
.skip-link:focus {
  left: 12px;
  top: 12px;
}
