/* ==========================================================================
   Anirudh & Associates
   --------------------------------------------------------------------------
   Typeface note: the display face is the one swap point. Italiana is an
   open-licensed flared/glyphic stand-in. If ABC Arizona Flare and ABC Diatype
   are licensed from Dinamo, drop the woff2 files into /assets/fonts/, add the
   @font-face blocks at the bottom of this file, and change --font-display /
   --font-sans below. Nothing else needs to move.
   ========================================================================== */

:root {
  --aa-white: #fcfcfd;
  --aa-black: #020203;
  --aa-grey:  #707785;
  --aa-black-rgb: 2 2 3;
  --aa-white-rgb: 252 252 253;

  --font-display: "Marcellus", "Italiana", Georgia, serif;
  --font-sans: "Geist", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  /* the display face has no Thin; its natural weight reads as one */
  --display-weight: 400;

  --gutter: 40px;
}

* { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  font-family: var(--font-display);
  background-color: var(--aa-black);
  letter-spacing: -0.015em;
  font-size: 1.65rem;
  font-weight: 300;
  line-height: 1.55;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
body::-webkit-scrollbar { width: 0; height: 0; }

img, svg { display: block; max-width: 100%; }
a { color: inherit; }

::selection { background: var(--aa-white); color: var(--aa-black); }
:focus-visible { outline: 1px solid currentColor; outline-offset: 4px; }

.skip {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--aa-white); color: var(--aa-black);
  font-family: var(--font-sans); font-size: 13px; padding: 12px 18px;
}
.skip:focus { left: 40px; top: 12px; }

/* --- page grounds --------------------------------------------------------- */

.dark-page { background-color: var(--aa-black); color: var(--aa-white); }
.white-page { background-color: var(--aa-white); color: var(--aa-black); min-height: 100vh; }

/* --- header --------------------------------------------------------------- */

.site-header {
  z-index: 2;
  justify-content: space-between;
  align-items: flex-start;
  padding: 40px 40px 0;
  display: flex;
  position: relative;
}

.site-header__title {
  font-family: var(--font-display);
  letter-spacing: -0.4px;
  color: var(--aa-black);
  font-size: 20px;
  font-weight: 300;
  line-height: 1.2;
  text-decoration: none;
}
.site-header--dark .site-header__title { color: var(--aa-white); }
.site-header__title--hidden { visibility: hidden; }

.site-header__menu-btn {
  cursor: pointer;
  color: var(--aa-black);
  background: 0 0;
  border: none;
  justify-content: center;
  align-items: center;
  padding: 8px;
  display: flex;
}
.site-header--dark .site-header__menu-btn,
.site-header--dark .menu-ticker__char { color: var(--aa-white); }

.menu-ticker { gap: 6px; display: flex; }
.menu-ticker__char {
  font-family: var(--font-sans);
  letter-spacing: -0.4px;
  color: var(--aa-black);
  user-select: none;
  -webkit-user-select: none;
  text-align: center;
  width: 0.7em;
  font-size: 28px;
  font-weight: 400;
  line-height: 1.2;
  transition: transform 0.35s, opacity 0.35s;
}

/* --- home hero ------------------------------------------------------------ */

.home-hero { padding: 60px 40px 160px; position: relative; }

.home-hero__title {
  font-family: var(--font-display);
  letter-spacing: -0.07em;
  color: var(--aa-white);
  font-size: clamp(56px, 16.5vw, 200px);
  font-weight: var(--display-weight);
  line-height: 0.94;
  margin: 0;
}

.hero-word { opacity: 0; transition: opacity 0.6s; }
.is-entered .hero-word { opacity: 1; }
.hero-word--soft { color: var(--aa-grey); }

.is-entered .home-hero__title {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.35s, transform 0.35s;
}
.is-entered.is-menu-open .home-hero__title {
  opacity: 0;
  pointer-events: none;
  transform: translateY(30px);
  transition: opacity 0.35s, transform 0.35s;
}

/* full-screen menu links, stacked over the hero */
.home-hero__nav-link {
  font-family: var(--font-display);
  letter-spacing: -0.05em;
  color: var(--aa-white);
  opacity: 0;
  pointer-events: none;
  transform: translateY(calc(var(--target-y) - 0.15em));
  transition: opacity 0.35s, transform 0.35s;
  transition-delay: calc((var(--nav-total) - 1 - var(--stagger-index)) * 0.12s);
  font-size: clamp(48px, 8.5vw, 128px);
  font-weight: var(--display-weight);
  line-height: 1.15;
  text-decoration: none;
  display: block;
  position: absolute;
  top: 0;
  left: 40px;
}
.is-menu-open .home-hero__nav-link {
  opacity: 1;
  pointer-events: auto;
  cursor: pointer;
  transform: translateY(var(--target-y));
  transition-delay: calc(0.35s + var(--stagger-index) * 0.12s);
}

.is-menu-open .content-rows,
.is-menu-open .zone-footer {
  opacity: 0;
  pointer-events: none;
  transform: translateY(60px);
  transition: opacity 0.35s, transform 0.35s;
}
.is-entered .content-rows,
.is-entered .zone-footer { transition: opacity 0.35s, transform 0.35s; }

/* --- content rows --------------------------------------------------------- */

.content-rows { padding: 0 40px; }

.content-row {
  grid-template-columns: 1fr 1fr;
  align-items: baseline;
  padding: 40px 0;
  display: grid;
}

.content-row__separator {
  background-color: var(--aa-black);
  opacity: 0.15;
  height: 1px;
}
.content-rows--dark .content-row__separator { background-color: var(--aa-white); }

.content-row__left { align-items: baseline; display: flex; }

.content-row__index {
  font-family: var(--font-sans);
  color: var(--aa-grey);
  letter-spacing: -0.4px;
  flex-shrink: 0;
  width: 94px;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.62;
}

.content-row__title {
  font-family: var(--font-sans);
  color: var(--aa-black);
  letter-spacing: -0.4px;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.62;
}

.content-row__description {
  font-family: var(--font-sans);
  color: var(--aa-black);
  letter-spacing: -0.4px;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.62;
}
.content-row__description p { margin: 0; }
.content-row__description p + p { margin-top: 1.62em; }
.content-row__description a {
  text-underline-offset: 3px;
  text-decoration: underline;
  text-decoration-thickness: 0.5px;
  transition: opacity 0.2s;
}
.content-row__description a:hover { opacity: 0.6; }

.content-rows--dark .content-row__title,
.content-rows--dark .content-row__description,
.content-rows--dark .content-row__description a { color: var(--aa-white); }

/* --- big site nav --------------------------------------------------------- */

.site-nav { margin-top: 0; padding: 0 40px; }
.site-nav__list { flex-direction: column; display: flex; }
.site-nav__separator { background-color: var(--aa-black); opacity: 0.15; height: 1px; }
.site-nav--dark .site-nav__separator { background-color: var(--aa-white); }
.site-nav__item { padding: 24px 0; }

.site-nav__link {
  font-family: var(--font-display);
  letter-spacing: -0.05em;
  color: var(--aa-black);
  font-size: clamp(48px, 8.5vw, 128px);
  font-weight: var(--display-weight);
  line-height: 135px;
  text-decoration: none;
  transition: opacity 0.2s;
  display: block;
}
.site-nav--dark .site-nav__link { color: var(--aa-white); }
.site-nav__list:hover .site-nav__link { opacity: 0.4; text-decoration: none; }
.site-nav__list:hover .site-nav__link:hover { opacity: 1; }

/* --- footer --------------------------------------------------------------- */

.site-footer { margin-top: 80px; padding: 0 40px 40px; }
.site-footer__content { justify-content: space-between; align-items: flex-start; display: flex; }

.site-footer__address,
.site-footer__email {
  font-family: var(--font-display);
  letter-spacing: -0.4px;
  color: var(--aa-black);
  font-size: 20px;
  font-weight: 300;
  line-height: 1.44;
  text-decoration: none;
}
.site-footer--dark .site-footer__address,
.site-footer--dark .site-footer__email { color: var(--aa-white); }
.site-footer__address { margin: 0; }

.site-footer__links { align-items: baseline; gap: 24px; display: flex; }
.site-footer__email-btn { cursor: pointer; background: 0 0; border: none; padding: 0; }

.site-footer__email-slot {
  vertical-align: bottom;
  height: 1.44em;
  display: inline-grid;
  overflow: hidden;
}
.site-footer__email-label { white-space: nowrap; grid-area: 1 / 1; }
.site-footer__email-label--default {
  opacity: 1;
  transform: translateY(0);
  transition: transform 0.35s, opacity 0.35s;
}
.site-footer__email-label--hover,
.site-footer__email-label--copied {
  opacity: 0;
  transform: translateY(0.5em);
  transition: transform 0.35s, opacity 0.35s;
}
@media (hover: hover) {
  .site-footer__email-btn:hover .site-footer__email-label--default {
    opacity: 0; transition-delay: 0s; transform: translateY(-0.5em);
  }
  .site-footer__email-btn:hover .site-footer__email-label--hover {
    opacity: 1; transition-delay: 0.15s; transform: translateY(0);
  }
}
.site-footer__email-btn.is-copied .site-footer__email-label--default,
.site-footer__email-btn.is-copied .site-footer__email-label--hover {
  opacity: 0; transition-delay: 0s; transform: translateY(-0.5em);
}
.site-footer__email-btn.is-copied .site-footer__email-label--copied {
  opacity: 1; transition-delay: 0.15s; transform: translateY(0);
}

/* --- inner page hero ------------------------------------------------------ */

.page-hero { padding: 60px 40px 80px; position: relative; }

.page-hero__eyebrow {
  font-family: var(--font-display);
  letter-spacing: -0.05em;
  color: var(--aa-grey);
  margin: 0 0 0;
  font-size: clamp(48px, 8.5vw, 128px);
  font-weight: var(--display-weight);
  line-height: 1.15;
  text-decoration: none;
  display: block;
}

.page-hero__title {
  font-family: var(--font-display);
  letter-spacing: -0.05em;
  color: var(--aa-black);
  max-width: 62%;
  font-size: clamp(48px, 8.5vw, 128px);
  font-weight: var(--display-weight);
  line-height: 0.95;
  margin: 0;
}

.page-hero__subtitle {
  font-family: var(--font-sans);
  letter-spacing: -0.4px;
  color: var(--aa-black);
  max-width: 520px;
  margin: 40px 0 0;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.62;
}

/* --- journal list --------------------------------------------------------- */

.blog-list { padding: 0 40px; }
.blog-list__item { border-bottom: 1px solid rgb(var(--aa-black-rgb) / 0.15); padding: 40px 0; }
.blog-list__item:first-child { border-top: 1px solid rgb(var(--aa-black-rgb) / 0.15); }

.blog-list__item-title {
  font-family: var(--font-display);
  letter-spacing: -0.03em;
  color: var(--aa-black);
  margin: 0 0 12px;
  font-size: clamp(28px, 4vw, 48px);
  font-weight: var(--display-weight);
  line-height: 1.1;
  text-decoration: none;
  transition: opacity 0.2s;
  display: block;
}
.blog-list__item-title:hover { opacity: 0.55; }

.blog-list__item-meta {
  font-family: var(--font-sans);
  color: var(--aa-grey);
  letter-spacing: -0.4px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.62;
  margin: 0;
}
.blog-list__item-excerpt {
  font-family: var(--font-sans);
  color: var(--aa-black);
  letter-spacing: -0.4px;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.62;
  max-width: 62ch;
  margin: 12px 0 0;
}

/* --- article -------------------------------------------------------------- */

.log-post { --log-post-prose: 720px; padding: 0 40px 40px; }

.log-post__byline {
  font-family: var(--font-sans);
  color: var(--aa-grey);
  letter-spacing: -0.4px;
  margin-bottom: 40px;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.62;
  display: flex;
  gap: 40px;
  flex-wrap: wrap;
}
.log-post__author-name { color: var(--aa-black); }

.log-post__text {
  grid-template-columns: 1fr min(var(--log-post-prose), 100%) 1fr;
  font-family: var(--font-sans);
  color: var(--aa-black);
  letter-spacing: -0.4px;
  font-size: 20px;
  font-weight: 400;
  line-height: 1.62;
  display: grid;
}
.log-post__text > * { grid-column: 2; }
.log-post__text p { margin: 0 0 1.62em; }

.log-post__text h2 {
  font-family: var(--font-sans);
  color: var(--aa-black);
  letter-spacing: -0.4px;
  margin-top: 2em;
  margin-bottom: 0.75em;
  font-size: 24px;
  line-height: 1.4;
  font-weight: 700;
}

.log-post__text blockquote {
  border-left: 3px solid rgb(var(--aa-black-rgb) / 0.2);
  color: var(--aa-grey);
  margin: 0 0 1.62em;
  padding-left: 1em;
}
.log-post__text blockquote p:last-child { margin-bottom: 0; }

.log-post__text ul { margin: 0 0 1.62em; padding-left: 1.1em; }
.log-post__text li { margin-bottom: 0.5em; }
.log-post__text li::marker { color: var(--aa-grey); }

.log-post__text a {
  color: var(--aa-black);
  text-underline-offset: 3px;
  text-decoration: underline;
  text-decoration-thickness: 0.5px;
  transition: opacity 0.2s;
}
.log-post__text hr { border: none; border-top: 1px solid rgb(var(--aa-black-rgb) / 0.15); margin: 2em 0; }

.log-post__nav {
  border-top: 1px solid rgb(var(--aa-black-rgb) / 0.15);
  font-family: var(--font-sans);
  letter-spacing: -0.4px;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  margin-top: 80px;
  padding: 40px 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.62;
  display: flex;
}
.log-post__nav a { color: var(--aa-black); text-decoration: none; transition: opacity 0.2s; }
.log-post__nav a:hover { opacity: 0.6; }
.log-post__nav-label {
  color: var(--aa-grey);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
  font-size: 12px;
  display: block;
}
.log-post__nav-date { color: var(--aa-grey); margin-top: 4px; font-size: 14px; display: block; }

/* --- careers table -------------------------------------------------------- */

.careers-table { padding: 0 40px; }
.careers-table__separator { background-color: var(--aa-black); opacity: 0.15; height: 1px; }
.careers-table__row {
  display: grid;
  grid-template-columns: 1fr 1.6fr 0.8fr 0.8fr auto;
  align-items: baseline;
  gap: 24px;
  padding: 24px 20px;
  margin: 0 -20px;
  text-decoration: none;
  transition: background-color 0.25s;
}
.careers-table__row:hover { background-color: var(--aa-black); }

.careers-table__department,
.careers-table__title,
.careers-table__type,
.careers-table__location,
.careers-table__apply {
  font-family: var(--font-sans);
  color: var(--aa-black);
  letter-spacing: -0.4px;
  font-size: 20px;
  line-height: 1.62;
  transition: color 0.25s;
}
.careers-table__department { font-weight: 500; }
.careers-table__title,
.careers-table__type,
.careers-table__location { font-weight: 400; }
.careers-table__apply { text-align: right; font-weight: 400; }

.careers-table__row:hover .careers-table__department,
.careers-table__row:hover .careers-table__title,
.careers-table__row:hover .careers-table__type,
.careers-table__row:hover .careers-table__location,
.careers-table__row:hover .careers-table__apply { color: var(--aa-white); }

.careers-table__message {
  font-family: var(--font-sans);
  color: var(--aa-grey);
  text-align: center;
  letter-spacing: -0.4px;
  padding: 80px 40px;
  font-size: 20px;
  font-weight: 400;
}

/* --- responsive ----------------------------------------------------------- */

@media (max-width: 768px) {
  .site-header,
  .page-hero,
  .blog-list,
  .log-post,
  .content-rows,
  .site-nav,
  .careers-table { padding-left: 20px; padding-right: 20px; }

  .home-hero { padding-bottom: 80px; padding-left: 20px; padding-right: 20px; }
  .home-hero__title { line-height: 1.05; }
  .home-hero__nav-link { left: 20px; }

  .content-row { grid-template-columns: 1fr; gap: 8px; }
  .content-row__left { flex-direction: column; }
  .content-row__index { width: auto; }

  .site-nav__link { line-height: 1.05; }
  .site-nav__item { padding: 26px 0; }

  .site-footer { margin-top: 48px; padding-left: 20px; padding-right: 20px; }
  .site-footer__content { flex-direction: column; gap: 24px; }
  .site-footer__links { flex-direction: column; gap: 8px; }
  .site-footer__address, .site-footer__email { font-size: 24px; }

  .page-hero__title { max-width: 100%; line-height: 1.05; }
  .page-hero__eyebrow { line-height: 1.2; }

  .menu-ticker__char { font-size: 18px; }

  .careers-table__row { grid-template-columns: 1fr; gap: 4px; }
  .careers-table__apply { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-word, .home-hero__title, .home-hero__nav-link,
  .content-rows, .zone-footer, .menu-ticker__char { transition: none !important; }
}

/* ==========================================================================
   LICENSED FONT SWAP
   --------------------------------------------------------------------------
   If you license ABC Arizona Flare + ABC Diatype from abcdinamo.com for
   apupneja.com, put the woff2 files in /assets/fonts/, uncomment this block,
   and set --font-display / --font-sans in :root to "ABC Arizona Flare" /
   "ABC Diatype" and --display-weight to 100.

@font-face {
  font-family: "ABC Arizona Flare";
  src: url("/assets/fonts/ABCArizonaFlare-Thin.woff2") format("woff2");
  font-weight: 100; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "ABC Arizona Flare";
  src: url("/assets/fonts/ABCArizonaFlare-Light.woff2") format("woff2");
  font-weight: 300; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "ABC Diatype";
  src: url("/assets/fonts/ABCDiatype-Regular.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "ABC Diatype";
  src: url("/assets/fonts/ABCDiatype-Medium.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
}
   ========================================================================== */
