@import "./site-footer.css";
/* Shared public-site shell. Typography and spacing follow marketing/brand/design.md. */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/Inter-400.ttf") format("truetype");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/Inter-500.ttf") format("truetype");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/Inter-600.ttf") format("truetype");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/Inter-700.ttf") format("truetype");
}

@font-face {
  font-family: "Tinos";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/Tinos-400.ttf") format("truetype");
}

@font-face {
  font-family: "Tinos";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/Tinos-400-italic.ttf") format("truetype");
}

/* Structural primitives shared with the existing landing drawer. */
.hc-page { --ink:#111111; --paper:#f4f4f4; --line:rgba(17,17,17,.18); --sans:Inter,sans-serif; --serif:Tinos,serif; color:var(--ink); font:400 16px/1.6 var(--sans); }
.hc-page,.hc-page * { box-sizing:border-box; }
.hc-page a { color:inherit; }
.hc-page button { font:inherit; }
.hc-page .hc-nav { position:sticky; top:0; z-index:50; display:grid; grid-template-columns:1fr auto; align-items:center; margin-bottom:calc(-1 * var(--hc-nav-offset)); border:0; }
.hc-page .hc-logo img { display:block; }
.hc-page .hc-menu-trigger { width:44px; height:44px; display:grid; place-items:center; padding:10px; border:0; background:transparent; color:var(--ink); cursor:pointer; }
.hc-page .hc-menu-trigger img { display:block; }
.hc-page .hc-menu-dialog { height:100dvh; max-width:none; max-height:none; margin:0 0 0 auto; padding:0; border:0; background:var(--paper); color:var(--ink); }
.hc-page .hc-menu-dialog:not([open]) { display:none; }
.hc-page .hc-menu-dialog[open] { animation:site-menu-in 260ms cubic-bezier(.23,1,.32,1) both; }
.hc-page .hc-menu-dialog::backdrop { background:rgba(17,17,17,.30); backdrop-filter:blur(4px); }
.hc-page .hc-menu-panel { min-height:100%; display:flex; flex-direction:column; padding:24px 32px 32px; }
.hc-page .hc-menu-panel header { display:flex; align-items:center; }
.hc-page .hc-menu-panel header button { width:44px; height:44px; display:grid; place-items:center; padding:0; border:0; background:transparent; cursor:pointer; }
.hc-page .hc-menu-panel header button img { width:14px; height:14px; opacity:.45; }
.hc-page .hc-menu-panel a { text-decoration:none; }
.hc-page .hc-menu-panel nav .hc-menu-cta { display:flex; align-items:center; justify-content:center; padding-inline:20px; border:0; border-radius:999px; background:var(--ink); }
@keyframes site-menu-in { from { transform:translateX(100%); } to { transform:translateX(0); } }
/* Public landing contract: marketing/brand/design.md, September 2026. */
html:has(.hc-page) {
  background: var(--paper);
  overscroll-behavior-y: none;
}

main.hc-page {
  --hc-surface-height: 67.2px;
  --hc-nav-offset: calc(var(--hc-surface-height) + env(safe-area-inset-top, 0px));
  --hc-gutter: 16px;
  --site-edge: max(24px, calc((100vw - 1120px) / 2));
  --landing-sans-size: 16px;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  background: var(--paper);
}

main.hc-page::before { filter: none; }
.hc-page > .hc-photo-continuum,
.hc-page > .hc-maroon-field { flex-shrink: 0; }

.hc-page .hc-nav {
  min-height: calc(var(--hc-surface-height) + env(safe-area-inset-top, 0px));
  height: auto;
  flex-shrink: 0;
  padding: calc(10px + env(safe-area-inset-top, 0px)) var(--site-edge) 10px;
  background: rgba(244, 244, 244, 0.78);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}
.hc-page .hc-menu-trigger img { width: 22px; height: 22px; }

.hc-page :is([id], a, button, summary) {
  scroll-margin-top: calc(var(--hc-nav-offset) + 16px);
  scroll-margin-bottom: 16px;
}
.hc-page :is(a, button, summary):focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 4px;
}

.hc-page .hc-menu-dialog { width: min(84vw, 360px); border-radius: 0; }
.hc-page .hc-menu-panel { overflow-y: auto; max-height: 100dvh; }
.hc-page .hc-menu-panel header { justify-content: space-between; flex-shrink: 0; position: sticky; top: 0; z-index: 1; background: var(--paper); font-size: var(--landing-sans-size); }
.hc-page .hc-menu-panel header a { display: flex; align-items: center; min-height: 44px; }
.hc-page .hc-menu-panel header .hc-menu-logo { width: auto; height: 28px; opacity: 1; }
.hc-page .hc-menu-panel > nav { margin-top: 32px; display: flex; flex-direction: column; flex: 1; }
.hc-page .hc-menu-panel nav a { min-height: 44px; flex-shrink: 0; padding-block: 16px; border-bottom: 0; font: 400 24px/1.2 var(--serif); letter-spacing: normal; text-transform: none; color: var(--ink); }
.hc-page .hc-menu-panel > nav > .hc-menu-auth { margin-top: auto; padding-top: 32px; }
.hc-page .hc-menu-panel nav .hc-menu-cta { min-height: 52px; padding-block: 0; font: 700 16px/1 var(--sans); letter-spacing: 0.15em; text-transform: uppercase; color: white; }
@media (max-width:679px) {
  .hc-page .hc-menu-panel { padding:max(20px,env(safe-area-inset-top,0px)) 24px max(24px,env(safe-area-inset-bottom,0px)); }
  .hc-page .hc-menu-panel nav a { font-size:22px; }
  .hc-page .hc-menu-panel nav .hc-menu-cta { font-size:16px; }
}
@media (prefers-reduced-motion:reduce) { .hc-page .hc-menu-dialog[open] { animation:none; } }
