/*
 * AVRYN Signal Cinema 2.2
 * Precision typography, spectral titles, layered surfaces and restrained motion.
 */

@font-face {
  font-family: "AVRYN Inter";
  src: url("../fonts/inter-variable.woff2") format("woff2-variations");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --av-font-sans: "AVRYN Inter", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --av-ease-out: cubic-bezier(.16, 1, .3, 1);
  --av-ease-smooth: cubic-bezier(.65, 0, .35, 1);
  --av-title-dark: linear-gradient(108deg, #F2F0E9 0%, #F2F0E9 28%, #A5A79E 67%, #B7D85A 100%);
  --av-title-light: linear-gradient(108deg, #050505 0%, #050505 30%, #62685D 72%, #B7D85A 100%);
  --av-title-signal: linear-gradient(105deg, #F2F0E9 2%, #A5A79E 45%, #B7D85A 100%);
  --av-signal-x: 72%;
  --av-signal-y: 28%;
}

html { scroll-behavior: smooth; }

body.avryn-consulting-site {
  font-family: var(--av-font-sans);
  font-optical-sizing: auto;
  font-kerning: normal;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.avryn-consulting-site::before {
  inset: -18%;
  background:
    radial-gradient(circle at var(--av-signal-x) var(--av-signal-y), rgba(183, 216, 90, .105), transparent 24%),
    radial-gradient(circle at 16% 64%, rgba(98, 104, 93, .13), transparent 30%),
    radial-gradient(circle at 84% 82%, rgba(165, 167, 158, .055), transparent 27%),
    #050505;
  transform: translate3d(0, 0, 0) scale(1.01);
  animation: avSignalAurora 24s var(--av-ease-smooth) infinite alternate;
}

.av-noise {
  opacity: .026;
  mix-blend-mode: soft-light;
}

/* Typography: one disciplined sans family across the product. */
.avryn-consulting-site :where(h1, h2, h3, h4, .avc-lead, .avc-impact-list strong) {
  font-family: var(--av-font-sans);
  font-optical-sizing: auto;
  font-synthesis: none;
  text-wrap: balance;
}

.avc-hero h1,
.avc-editorial-head h2,
.avc-method h2,
.avc-control h2,
.avc-firm h2,
.avc-final h2,
.avc-page-hero h1,
.avc-page-section h2 {
  line-height: .94;
  font-weight: 520;
  letter-spacing: -.058em;
}

.avc-editorial-head h2,
.avc-method h2,
.avc-control h2,
.avc-firm h2,
.avc-final h2,
.avc-page-section h2 {
  font-size: clamp(50px, 5.05vw, 80px);
}

.avc-editorial-head h2 em,
.avc-method h2 em,
.avc-control h2 em,
.avc-firm h2 em,
.avc-final h2 em,
.avc-page-hero h1 em,
.avc-page-section h2 em,
.avc-hero h1 span {
  color: transparent;
  font-family: inherit;
  font-style: normal;
  font-weight: inherit;
  letter-spacing: inherit;
  background-image: var(--av-title-dark);
  background-size: 180% 100%;
  background-position: 0% 50%;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: avSignalTitleFlow 12s var(--av-ease-smooth) infinite alternate;
}

.avc-thesis .avc-editorial-head h2 em,
.avc-evidence .avc-editorial-head h2 em,
.avc-impact .avc-editorial-head h2 em,
.avc-firm h2 em,
.avc-page-section--light h2 em {
  background-image: var(--av-title-light);
}

.avc-capability h3,
.avc-insight-grid h3,
.avc-evidence-principles h3,
.avc-page-card h3,
.avc-method-steps h3,
.avc-page-list strong {
  font-weight: 510;
  letter-spacing: -.04em;
}

.avc-kicker,
.avc-section-number,
.avc-page-card > span,
.avc-insight-grid span,
.avc-capability > header,
.avc-control-plane > header,
.avc-control-plane > footer {
  font-weight: 620;
  letter-spacing: .17em;
}

/* Header: precise glass rather than a heavy dark bar. */
.avc-header {
  border-bottom: 1px solid transparent;
  background: linear-gradient(180deg, rgba(5, 5, 5, .89), rgba(5, 5, 5, .52) 72%, transparent);
  backdrop-filter: blur(0);
  transition: min-height .45s var(--av-ease-out), background .45s ease, border-color .45s ease, backdrop-filter .45s ease;
}

.avc-header.is-scrolled {
  border-color: rgba(165, 167, 158, .14);
  background: rgba(5, 5, 5, .78);
  backdrop-filter: blur(22px) saturate(1.12);
  box-shadow: 0 18px 54px rgba(5, 5, 5, .24);
}

.av-menu a {
  font-size: 12px;
  font-weight: 490;
  letter-spacing: -.01em;
  transition: color .3s ease, opacity .3s ease;
}

.av-header-cta,
.av-button-primary,
.avc-hero .av-button-primary,
.avc-final .av-button-primary,
.av-inquiry .av-inquiry__submit {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 7px;
  background: linear-gradient(108deg, #B7D85A 0%, #F2F0E9 50%, #B7D85A 100%);
  background-size: 220% 100%;
  background-position: 100% 50%;
  box-shadow: 0 13px 35px rgba(183, 216, 90, .13), inset 0 1px 0 rgba(242, 240, 233, .55);
  transition: transform .45s var(--av-ease-out), background-position .7s var(--av-ease-out), box-shadow .45s ease;
}

.av-header-cta:hover,
.av-button-primary:hover,
.avc-hero .av-button-primary:hover,
.avc-final .av-button-primary:hover,
.av-inquiry .av-inquiry__submit:hover:not(:disabled) {
  transform: translateY(-2px);
  background-position: 0% 50%;
  box-shadow: 0 20px 54px rgba(183, 216, 90, .2), inset 0 1px 0 rgba(242, 240, 233, .7);
}

/* Hero: deeper stage, controlled light and cleaner hierarchy. */
.avc-hero {
  min-height: min(940px, 100svh);
  padding: clamp(128px, 11vw, 164px) 0 44px;
  background:
    linear-gradient(90deg, rgba(5, 5, 5, .985) 0%, rgba(5, 5, 5, .91) 42%, rgba(5, 5, 5, .24) 100%),
    radial-gradient(circle at 78% 42%, rgba(183, 216, 90, .115), transparent 34%);
}

.avc-hero::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  content: "";
  pointer-events: none;
  background:
    radial-gradient(circle at 77% 46%, rgba(242, 240, 233, .038), transparent 18%),
    linear-gradient(120deg, transparent 30%, rgba(165, 167, 158, .025) 52%, transparent 73%);
  background-size: 100% 100%, 180% 100%;
  animation: avSignalStage 16s var(--av-ease-smooth) infinite alternate;
}

.avc-hero::after {
  opacity: .17;
  background-size: 96px 96px;
  mask-image: radial-gradient(ellipse at 76% 45%, #050505 0%, transparent 66%);
}

.avc-hero .av-ai-hero-grid { min-height: 620px; }
.avc-hero .av-ai-hero-copy { max-width: 680px; }

.avc-hero h1 {
  max-width: 720px;
  font-size: clamp(58px, 6.15vw, 88px);
  line-height: .92;
  font-weight: 520;
  letter-spacing: -.062em;
}

.avc-hero h1 span { display: inline-block; }

.avc-hero .av-ai-hero-eyebrow {
  margin-bottom: 31px;
  font-size: 10px;
}

.avc-hero .av-ai-hero-lead {
  max-width: 640px;
  margin-top: 34px;
  color: var(--av-signal-ivory);
  font-size: clamp(16px, 1.28vw, 18px);
  line-height: 1.72;
  letter-spacing: -.014em;
}

.avc-hero .av-ai-hero-support {
  max-width: 590px;
  color: var(--av-signal-stone);
  line-height: 1.72;
}

.avc-hero-rail {
  margin-top: 18px;
  border-color: rgba(165, 167, 158, .15);
  background: linear-gradient(90deg, rgba(242, 240, 233, .012), rgba(183, 216, 90, .018), rgba(242, 240, 233, .008));
  backdrop-filter: blur(14px);
}

.avc-hero-rail > div {
  min-height: 76px;
  border-color: rgba(165, 167, 158, .13);
}

/* Orbital system: brighter core, quieter geometry, slower cinematic drift. */
.av-ai-hero-system {
  filter: drop-shadow(0 42px 90px rgba(5, 5, 5, .46));
}

.av-po-ring {
  border-color: rgba(165, 167, 158, .125);
  box-shadow: inset 0 0 40px rgba(165, 167, 158, .025);
}

.av-po-ring-5 {
  border-color: rgba(183, 216, 90, .32);
  box-shadow: 0 0 70px rgba(183, 216, 90, .055), inset 0 0 45px rgba(183, 216, 90, .04);
}

.av-po-core {
  border-color: rgba(183, 216, 90, .45);
  background:
    radial-gradient(circle at 42% 32%, rgba(242, 240, 233, .055), transparent 30%),
    radial-gradient(circle at 58% 62%, rgba(183, 216, 90, .09), transparent 55%),
    rgba(5, 5, 5, .95);
  box-shadow: 0 0 90px rgba(183, 216, 90, .14), inset 0 0 52px rgba(165, 167, 158, .055);
}

.av-po-core-logo {
  filter: drop-shadow(0 0 24px rgba(183, 216, 90, .15));
}

/* Sections and surfaces: edge light, pointer-aware illumination and less visual bulk. */
.avc-section { overflow: clip; }

.avc-section::before {
  opacity: .7;
  background: linear-gradient(90deg, transparent, rgba(165, 167, 158, .18) 20%, rgba(183, 216, 90, .24) 50%, rgba(165, 167, 158, .18) 80%, transparent);
}

.avc-capability,
.avc-insight-grid article,
.avc-page-card,
.avc-final-action,
.avc-page-console {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-color: rgba(165, 167, 158, .16);
  border-radius: 12px;
  background:
    radial-gradient(circle at var(--av-card-x, 50%) var(--av-card-y, 0%), rgba(183, 216, 90, .075), transparent 32%),
    linear-gradient(145deg, rgba(242, 240, 233, .032), rgba(5, 5, 5, .84) 46%, rgba(5, 5, 5, .97));
  box-shadow: 0 38px 110px rgba(5, 5, 5, .25), inset 0 1px 0 rgba(242, 240, 233, .025);
  transition: transform .65s var(--av-ease-out), border-color .45s ease, box-shadow .65s ease, background .45s ease;
}

.avc-capability::after,
.avc-insight-grid article::after,
.avc-page-card::after,
.avc-final-action::after,
.avc-page-console::after {
  position: absolute;
  inset: 0 auto auto 0;
  z-index: -1;
  width: 100%;
  height: 1px;
  content: "";
  opacity: .68;
  background: linear-gradient(90deg, transparent, rgba(242, 240, 233, .18), rgba(183, 216, 90, .52), transparent);
  transform: scaleX(.34);
  transform-origin: left;
  transition: transform .85s var(--av-ease-out), opacity .45s ease;
}

.avc-capability:hover,
.avc-insight-grid article:hover,
.avc-page-card:hover,
.avc-final-action:hover,
.avc-page-console:hover {
  border-color: rgba(183, 216, 90, .34);
  box-shadow: 0 48px 125px rgba(5, 5, 5, .34), 0 0 56px rgba(183, 216, 90, .045), inset 0 1px 0 rgba(242, 240, 233, .04);
}

.avc-capability:hover::after,
.avc-insight-grid article:hover::after,
.avc-page-card:hover::after,
.avc-final-action:hover::after,
.avc-page-console:hover::after {
  opacity: 1;
  transform: scaleX(1);
}

.avc-capability {
  padding: 24px;
}

.avc-capability h3 {
  margin-top: 32px;
  font-size: clamp(30px, 2.5vw, 39px);
  line-height: 1.02;
}

.avc-capability > p,
.avc-insight-grid p,
.avc-page-card p {
  letter-spacing: -.01em;
}

.avc-method-steps li {
  position: relative;
  transition: background .5s ease, opacity .5s ease;
}

.avc-method-steps li.is-active {
  background: linear-gradient(90deg, rgba(183, 216, 90, .105), rgba(183, 216, 90, .025) 42%, transparent);
}

.avc-method-steps h3 {
  font-size: clamp(25px, 2.35vw, 38px);
}

/* Ivory sections remain in the brand system, with editorial depth instead of flat fill. */
.avc-thesis,
.avc-evidence,
.avc-impact,
.avc-firm,
.avc-page-section--light,
.avc-generic-entry {
  background:
    radial-gradient(circle at 84% 14%, rgba(183, 216, 90, .12), transparent 28%),
    radial-gradient(circle at 12% 82%, rgba(165, 167, 158, .14), transparent 31%),
    #F2F0E9;
}

.avc-thesis .avc-kicker,
.avc-evidence .avc-kicker,
.avc-impact .avc-kicker,
.avc-firm .avc-kicker,
.avc-page-section--light .avc-kicker {
  color: #62685D;
}

.avc-page-section--light .avc-page-card {
  border-color: rgba(98, 104, 93, .19);
  background:
    radial-gradient(circle at var(--av-card-x, 50%) var(--av-card-y, 0%), rgba(183, 216, 90, .18), transparent 33%),
    linear-gradient(145deg, rgba(242, 240, 233, .76), rgba(165, 167, 158, .1));
  box-shadow: 0 26px 80px rgba(98, 104, 93, .12), inset 0 1px 0 rgba(242, 240, 233, .75);
}

.avc-page-section--light .avc-page-card::after {
  background: linear-gradient(90deg, transparent, rgba(98, 104, 93, .23), rgba(183, 216, 90, .88), transparent);
}

.avc-impact-list > div,
.avc-page-list li,
.avc-sequence li {
  transition: padding-left .5s var(--av-ease-out), background .45s ease;
}

.avc-impact-list > div:hover,
.avc-page-list li:hover {
  padding-left: 12px;
  background: linear-gradient(90deg, rgba(183, 216, 90, .075), transparent 65%);
}

.avc-firm-mark {
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 48%, rgba(183, 216, 90, .08), transparent 40%),
    #050505;
  box-shadow: 0 46px 120px rgba(5, 5, 5, .22), inset 0 0 110px rgba(165, 167, 158, .045);
}

/* Internal pages and form share the same cinematic language. */
.avc-page-hero {
  min-height: min(760px, 88svh);
  background:
    linear-gradient(90deg, rgba(5, 5, 5, .99), rgba(5, 5, 5, .86) 52%, rgba(5, 5, 5, .46)),
    radial-gradient(circle at 78% 45%, rgba(183, 216, 90, .12), transparent 32%);
}

.avc-page-hero h1 {
  font-size: clamp(58px, 6.1vw, 90px);
}

.avc-page-hero p {
  letter-spacing: -.015em;
}

.avc-page-console {
  backdrop-filter: blur(16px);
}

.av-inquiry .av-inquiry__intro h1,
.av-inquiry .av-inquiry__intro h1 > span {
  font-family: var(--av-font-sans);
  font-weight: 520;
  letter-spacing: -.058em;
}

.av-inquiry .av-inquiry__intro h1 > span {
  color: transparent;
  background: var(--av-title-signal);
  background-size: 180% 100%;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: avSignalTitleFlow 12s var(--av-ease-smooth) infinite alternate;
}

.av-inquiry .av-inquiry__card {
  border-radius: 14px;
  backdrop-filter: blur(18px);
}

.av-inquiry .av-inquiry__field > input,
.av-inquiry .av-inquiry__field > textarea,
.av-inquiry .av-inquiry__field > select {
  border-radius: 7px;
  transition: border-color .3s ease, box-shadow .3s ease, background .3s ease;
}

.av-footer-signature img {
  opacity: .052;
  filter: drop-shadow(0 0 42px rgba(183, 216, 90, .08));
}

@keyframes avSignalAurora {
  0% { transform: translate3d(-1.5%, -1%, 0) scale(1.01); }
  100% { transform: translate3d(1.5%, 1%, 0) scale(1.045); }
}

@keyframes avSignalTitleFlow {
  0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}

@keyframes avSignalStage {
  0% { background-position: center, 0% 50%; opacity: .76; }
  100% { background-position: center, 100% 50%; opacity: 1; }
}

@media (max-width: 1120px) {
  .avc-hero { min-height: auto; }
  .avc-hero h1 { font-size: clamp(55px, 7.4vw, 80px); }
}

@media (max-width: 900px) {
  body.avryn-consulting-site::before { inset: -8%; }
  .avc-hero {
    padding-top: 124px;
    background:
      radial-gradient(circle at 70% 38%, rgba(183, 216, 90, .1), transparent 36%),
      #050505;
  }
  .avc-hero .av-ai-hero-grid { min-height: 0; }
  .avc-hero .av-ai-hero-system { margin-top: 24px; }
  .avc-editorial-head h2,
  .avc-method h2,
  .avc-control h2,
  .avc-firm h2,
  .avc-final h2,
  .avc-page-section h2 { font-size: clamp(46px, 8.8vw, 68px); }
}

@media (max-width: 680px) {
  html { scroll-behavior: auto; }
  .avc-header.is-scrolled { backdrop-filter: blur(16px); }
  .avc-hero {
    padding: 112px 0 32px;
    min-height: auto;
  }
  .avc-hero h1,
  .avc-page-hero h1 {
    font-size: clamp(45px, 13vw, 61px);
    line-height: .94;
    letter-spacing: -.058em;
  }
  .avc-hero .av-ai-hero-lead { margin-top: 27px; font-size: 16px; line-height: 1.66; }
  .avc-hero .av-ai-hero-support { font-size: 14px; line-height: 1.65; }
  .avc-hero-rail { margin-top: 26px; }
  .avc-capability,
  .avc-insight-grid article,
  .avc-page-card,
  .avc-final-action,
  .avc-page-console { border-radius: 10px; }
  .avc-impact-list > div:hover,
  .avc-page-list li:hover { padding-left: 0; }
}

@media (max-width: 390px) {
  .avc-hero h1,
  .avc-page-hero h1 { font-size: clamp(42px, 12.2vw, 50px); }
  .avc-editorial-head h2,
  .avc-method h2,
  .avc-control h2,
  .avc-firm h2,
  .avc-final h2,
  .avc-page-section h2 { font-size: clamp(40px, 11.6vw, 48px); }
}

@media (hover: none), (pointer: coarse) {
  .avc-capability:hover,
  .avc-insight-grid article:hover,
  .avc-page-card:hover,
  .avc-final-action:hover,
  .avc-page-console:hover { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body.avryn-consulting-site::before,
  .avc-hero::before,
  .avc-editorial-head h2 em,
  .avc-method h2 em,
  .avc-control h2 em,
  .avc-firm h2 em,
  .avc-final h2 em,
  .avc-page-hero h1 em,
  .avc-page-section h2 em,
  .avc-hero h1 span,
  .av-inquiry .av-inquiry__intro h1 > span { animation: none; }
}
