/* Rise Ultra — design tokens + reset. Shared by all three routes. */
:root{
  --cream:#F5F1E8;
  --charcoal:#16130F;
  --ink:#211C16;
  --clay:#B5532E;
  --clay-dark:#9A4526;
  --light-clay:#E08A5C;
  --muted:#574E43;
  --border:#D8D0C0;
  --card:#FCFAF6;
  --display:'Archivo',system-ui,sans-serif;
  --body:'Hanken Grotesk',system-ui,sans-serif;
}
*{box-sizing:border-box}
/* No `scroll-behavior:smooth` here on purpose. In-page anchors are animated by
   app.js on a fixed 650ms ease-out curve; a native smooth scroll would fight
   that loop frame by frame. Anything that still wants the native animation
   asks for it explicitly with behavior:'smooth'. */
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
img{max-width:100%;display:block}
[hidden]{display:none!important}

/* Vidalytics embeds. The inline embed scripts set their own padding-top for
   aspect ratio; these wrappers only constrain width and centre them. */
.vid-vsl{border-radius:8px;overflow:hidden}
.vid-portrait{max-width:360px;margin-left:auto;margin-right:auto;border-radius:8px;overflow:hidden}
