*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
.btn { padding: 12px 20px; border-style: solid; border-width: 1px; cursor: pointer; }
.btn.ghost { background: transparent; }
header.site { position: sticky; top: 0; z-index: 20; backdrop-filter: blur(10px); }
header.site .wrap { display: flex; align-items: center; justify-content: space-between; gap: 22px; }
.nav { display: flex; align-items: center; }
.nav a[aria-current="page"] { color: var(--gold-lit); }
.theme-toggle { width: 38px; height: 38px; padding: 0; border: 1px solid var(--line); border-radius: 4px; background: transparent; color: var(--bone); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; flex: 0 0 auto; }
.theme-toggle svg { width: 18px; height: 18px; display: block; }
.page-hero { padding: 86px 0 72px; border-bottom: 1px solid var(--line); background: var(--ink-2); }
.page-hero h1 { margin: 12px 0 18px; max-width: 14ch; font-size: 54px; line-height: 1.08; }
.page-hero p { max-width: 720px; color: var(--dim); font-family: var(--alt); font-size: 19px; }
.page-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 28px; }
.section-copy { max-width: 760px; color: var(--dim); }
.section-copy strong { color: var(--bone); font-weight: 500; }
.capability-menu { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-top: 34px; border: 1px solid var(--line); background: var(--line); }
.capability-tile { min-height: 170px; padding: 24px; background: var(--panel); }
.capability-tile .cap-num { color: var(--spot); font-size: 12px; font-weight: 600; }
.capability-tile h3 { margin: 10px 0 8px; font-size: 19px; }
.capability-tile p { color: var(--dim); font-size: 14px; }
.capability-note { margin-top: 24px; padding-left: 18px; border-left: 3px solid var(--gold); color: var(--dim); }
.work-gallery { display: grid; gap: 26px; }
.project-showcase { display: grid; grid-template-columns: minmax(230px, .72fr) minmax(0, 1.28fr); gap: 30px; align-items: start; padding: 30px 0; border-top: 1px solid var(--line); }
.project-showcase:last-child { border-bottom: 1px solid var(--line); }
.project-copy { position: sticky; top: 104px; }
.project-copy h3 { margin: 9px 0 10px; font-size: 25px; }
.project-copy p { color: var(--dim); }
.project-copy .project-link { display: inline-flex; margin-top: 18px; color: var(--spot); font-size: 13px; font-weight: 600; }
.project-shots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.project-shot { margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); }
.project-shot img { display: block; width: 100%; max-width: 100%; height: auto; aspect-ratio: 16 / 8.2; object-fit: contain; background: #0a0b10; }
.project-shot figcaption { padding: 10px 12px; color: var(--dim); font-size: 12px; }
.project-shots .project-shot:only-child { grid-column: 1 / -1; }
.inventory { background: var(--ink-2); }
.inventory .catalog { margin-top: 40px; }
.booking-intro { padding: 54px 0 26px; }
.booking-intro .wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 420px); gap: 40px; align-items: end; }
.booking-intro h1 { margin: 10px 0 14px; font-size: 48px; line-height: 1.1; }
.booking-intro p { color: var(--dim); }
.booking-facts { border-left: 3px solid var(--gold); padding: 14px 0 14px 22px; display: grid; gap: 7px; }
.booking-facts strong { color: var(--gold-lit); }
.booking-embed { padding: 0 0 64px; }
.cal-frame { width: 100%; min-height: 760px; overflow: auto; border: 1px solid var(--line-lit); border-radius: 6px; background: #fff; }
#my-cal-inline-30min { width: 100%; min-height: 760px; height: 100%; overflow: auto; }
footer.site { border-top: 1px solid rgba(201, 164, 92, .18); }
footer.site .wrap { min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: 12px; }
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.reveal.in { opacity: 1; transform: none; }

@media (max-width: 900px) {
  .capability-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-showcase { grid-template-columns: 1fr; }
  .project-copy { position: static; }
  .booking-intro .wrap { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .wrap { padding: 0 20px; }
  header.site .wrap { gap: 10px; }
  .brand-type { display: none; }
  .nav { gap: 8px; }
  .nav .btn { padding: 9px 12px; font-size: 12px; }
  .page-hero { padding: 58px 0 52px; }
  .page-hero h1 { font-size: 40px; }
  .page-hero p { font-size: 17px; }
  .capability-menu, .project-shots { grid-template-columns: 1fr; }
  .project-showcase { padding: 24px 0; }
  .project-shot img { aspect-ratio: auto; }
  .booking-intro { padding: 42px 0 22px; }
  .booking-intro h1 { font-size: 38px; }
  .cal-frame, #my-cal-inline-30min { min-height: 680px; }
  footer.site .wrap { min-height: 86px; align-items: flex-start; justify-content: center; flex-direction: column; padding-top: 18px; padding-bottom: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}
