*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--rj-bg-page);color:var(--rj-text-primary);font-family:var(--rj-font-body);font-size:var(--rj-body-size);line-height:var(--rj-body-lh);font-weight:var(--rj-weight-regular);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
h1,h2,h3,h4,h5,h6,p,figure,blockquote{margin:0}
img,svg,video{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--rj-gold-40);color:var(--rj-paper)}
a{color:var(--rj-link);text-decoration:none;text-underline-offset:.22em;transition:var(--rj-transition-colour)}
a:hover{color:var(--rj-link-hover);text-decoration:underline;text-decoration-thickness:1px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--rj-focus-ring);border-radius:var(--rj-radius-sm)}
::placeholder{color:var(--rj-text-muted);opacity:1}

/* ── Type roles ─────────────────────────────────────────────── */
.rj-display{font-family:var(--rj-font-display);font-weight:var(--rj-weight-medium);font-size:var(--rj-display-size);line-height:var(--rj-display-lh);letter-spacing:var(--rj-display-ls)}
.rj-h1{font-family:var(--rj-font-display);font-weight:var(--rj-weight-medium);font-size:var(--rj-h1-size);line-height:var(--rj-h1-lh);letter-spacing:var(--rj-h1-ls)}
.rj-h2{font-family:var(--rj-font-display);font-weight:var(--rj-weight-medium);font-size:var(--rj-h2-size);line-height:var(--rj-h2-lh);letter-spacing:var(--rj-h2-ls)}
.rj-h3{font-family:var(--rj-font-display);font-weight:var(--rj-weight-medium);font-size:var(--rj-h3-size);line-height:var(--rj-h3-lh);letter-spacing:var(--rj-h3-ls)}
.rj-h4{font-family:var(--rj-font-display);font-weight:var(--rj-weight-medium);font-size:var(--rj-h4-size);line-height:var(--rj-h4-lh);letter-spacing:var(--rj-h4-ls)}
.rj-h5{font-family:var(--rj-font-body);font-weight:var(--rj-weight-semibold);font-size:var(--rj-h5-size);line-height:var(--rj-h5-lh);letter-spacing:var(--rj-h5-ls)}
.rj-h6{font-family:var(--rj-font-body);font-weight:var(--rj-weight-semibold);font-size:var(--rj-h6-size);line-height:var(--rj-h6-lh);letter-spacing:var(--rj-h6-ls)}
.rj-body-lg{font-size:var(--rj-body-lg-size);line-height:var(--rj-body-lg-lh);color:var(--rj-text-secondary)}
.rj-body{font-size:var(--rj-body-size);line-height:var(--rj-body-lh)}
.rj-small{font-size:var(--rj-small-size);line-height:var(--rj-small-lh);letter-spacing:var(--rj-small-ls)}
.rj-caption{font-size:var(--rj-caption-size);line-height:var(--rj-caption-lh);letter-spacing:var(--rj-caption-ls);color:var(--rj-text-muted)}
.rj-label{font-weight:var(--rj-weight-semibold);font-size:var(--rj-label-size);line-height:var(--rj-label-lh);letter-spacing:var(--rj-label-ls)}
.rj-overline{font-family:var(--rj-font-display);font-weight:var(--rj-weight-regular);font-size:var(--rj-overline-size);line-height:var(--rj-overline-lh);letter-spacing:var(--rj-overline-ls);text-transform:uppercase;color:var(--rj-text-accent)}
.rj-quote{font-family:var(--rj-font-serif);font-weight:var(--rj-weight-light);font-style:italic;font-size:var(--rj-quote-size);line-height:var(--rj-quote-lh);letter-spacing:var(--rj-quote-ls)}
.rj-figure{font-family:var(--rj-font-display);font-weight:var(--rj-weight-light);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.rj-mono{font-family:var(--rj-font-mono);font-size:var(--rj-caption-size);letter-spacing:.02em;font-variant-numeric:tabular-nums}
.rj-prose{max-width:var(--rj-measure);text-wrap:pretty}
.rj-prose p+p{margin-top:var(--rj-space-24)}
.rj-balance{text-wrap:balance}
.rj-gold-text{background:var(--rj-grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ── Layout ─────────────────────────────────────────────────── */
.rj-container{width:100%;max-width:var(--rj-container-max);margin-inline:auto;padding-inline:var(--rj-margin)}
.rj-container--narrow{max-width:var(--rj-container-narrow)}
.rj-container--wide{max-width:var(--rj-container-wide)}
@media(min-width:768px){.rj-container{padding-inline:var(--rj-margin-md)}}
@media(min-width:1280px){.rj-container{padding-inline:var(--rj-margin-lg)}}
.rj-grid{display:grid;grid-template-columns:repeat(var(--rj-cols-sm),minmax(0,1fr));gap:var(--rj-gutter)}
@media(min-width:768px){.rj-grid{grid-template-columns:repeat(var(--rj-cols-md),minmax(0,1fr));gap:var(--rj-gutter-md)}}
@media(min-width:1024px){.rj-grid{grid-template-columns:repeat(var(--rj-cols),minmax(0,1fr));gap:var(--rj-gutter-lg)}}
.rj-section{padding-block:var(--rj-section)}
.rj-section--lg{padding-block:var(--rj-section-lg)}
.rj-hairline{height:1px;border:0;background:var(--rj-border-subtle)}
.rj-rule{height:1px;border:0;background:var(--rj-grad-rule)}

/* ── Motion ─────────────────────────────────────────────────── */
@keyframes rj-rise{from{opacity:0;transform:translateY(var(--rj-reveal-distance))}to{opacity:1;transform:none}}
@keyframes rj-fade{from{opacity:0}to{opacity:1}}
@keyframes rj-spin{to{transform:rotate(360deg)}}
@keyframes rj-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
.rj-reveal{animation:rj-rise var(--rj-dur-reveal) var(--rj-ease-entrance) both}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}
.rj-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
