
.platform-loader {
  position:fixed; inset:0; z-index:999;
  display:grid; place-items:center;
  background:#020406;
  transition:opacity .55s ease, visibility .55s ease;
}
.platform-loader.loader-hidden { opacity:0; visibility:hidden; }
.loader-shell { width:min(440px,calc(100% - 40px)); text-align:center; }
.loader-logo {
  width:100px; height:100px; margin:0 auto 22px; object-fit:cover;
  clip-path:polygon(50% 0,100% 20%,92% 78%,50% 100%,8% 78%,0 20%);
  box-shadow:0 0 50px rgba(68,164,235,.3);
}
.loader-shell p,.loader-shell strong,.loader-shell small {
  display:block; font-family:Orbitron,sans-serif; letter-spacing:.12em;
}
.loader-shell p { color:#dce8f0; font-size:.82rem; }
.loader-shell strong { color:#72c5fb; font-size:.67rem; }
.loader-shell small { color:#52616d; font-size:.52rem; }
.loader-track { height:3px; margin:24px 0; overflow:hidden; background:#16222c; }
.loader-track span { display:block; width:100%; height:100%; background:linear-gradient(90deg,transparent,#5bb8f4,transparent); animation:loaderSweep 1.35s ease-in-out infinite; }
@keyframes loaderSweep { from{transform:translateX(-100%)} to{transform:translateX(100%)} }

.catalog-entry { margin-top:22px; }

.platform-page { background:#040608; }
.platform-hero,.portal-hero {
  padding:170px 0 90px;
  background:
    linear-gradient(90deg,rgba(4,7,10,.96),rgba(4,7,10,.72)),
    url("assets/agr-brand-poster.jpg") center/cover no-repeat;
  border-bottom:1px solid #263540;
}
.platform-hero-grid,.portal-layout {
  display:grid; grid-template-columns:1.05fr .95fr; gap:60px; align-items:center;
}
.platform-hero h1,.portal-intro h1 {
  margin:12px 0 20px; color:#f4f7f9;
  font-size:clamp(3rem,7vw,6.2rem);
}
.platform-hero p,.portal-intro p { max-width:760px; color:#a8b4be; font-size:1.05rem; }

.catalog-protocol {
  display:grid; gap:12px; padding:28px;
  border:1px solid #31516b; background:rgba(5,10,15,.83);
}
.catalog-protocol span,.catalog-protocol strong,.catalog-protocol small {
  font-family:Orbitron,sans-serif; letter-spacing:.08em;
}
.catalog-protocol span { color:#74bde9; font-size:.62rem; }
.catalog-protocol strong { color:#e4eaf0; font-size:.72rem; }
.catalog-protocol small { color:#7f8b95; font-size:.57rem; }

.platform-section { padding:90px 0 110px; }
.catalog-controls { max-width:620px; margin-bottom:32px; }
.catalog-controls label { display:block; margin-bottom:8px; color:#79bce9; font:600 .62rem Orbitron,sans-serif; letter-spacing:.1em; }
.catalog-controls input,.portal-form input,.portal-form select {
  width:100%; padding:14px;
  color:#e6edf2; border:1px solid #2f4a5f; background:#0a1118; outline:none;
}
.catalog-controls input:focus,.portal-form input:focus,.portal-form select:focus {
  border-color:#64b6ef; box-shadow:0 0 20px rgba(56,145,211,.14);
}
.catalog-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.catalog-card {
  position:relative; overflow:hidden;
  padding:26px; border:1px solid #2b3945;
  background:linear-gradient(145deg,#111923,#080c11);
}
.catalog-card::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; background:var(--strength); }
.catalog-top { display:flex; justify-content:space-between; gap:20px; }
.catalog-code { color:#87c8f4; font:700 .7rem Orbitron,sans-serif; letter-spacing:.11em; }
.inventory-status { color:#fff; font:800 .78rem Orbitron,sans-serif; letter-spacing:.11em; text-align:right; }
.catalog-card h2 { margin:25px 0 8px; font-size:1.45rem; }
.catalog-card p { color:#8f9ca7; }
.strength-row { display:flex; flex-wrap:wrap; gap:8px; margin:22px 0; }
.strength-chip {
  padding:8px 11px; border:1px solid var(--chip); color:#e8edf1;
  font:600 .62rem Orbitron,sans-serif; letter-spacing:.07em;
}
.catalog-actions { display:flex; flex-wrap:wrap; gap:10px; }
.catalog-actions a,.catalog-actions button {
  padding:11px 13px; color:#d9ecfa; border:1px solid #3c7199; background:#102233;
  text-decoration:none; cursor:pointer; font:600 .6rem Orbitron,sans-serif; letter-spacing:.08em;
}
.prototype-notice { margin-top:28px; padding:20px; border:1px solid #736117; background:#171403; }
.prototype-notice strong { color:#ffc400; font:600 .62rem Orbitron,sans-serif; letter-spacing:.09em; }
.prototype-notice p { margin-bottom:0; color:#b7ad80; font-size:.87rem; }

.portal-hero { min-height:760px; position:relative; overflow:hidden; }
.portal-grid-bg {
  position:absolute; inset:0;
  background-image:linear-gradient(rgba(72,145,203,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(72,145,203,.07) 1px,transparent 1px);
  background-size:44px 44px; animation:gridDrift 18s linear infinite;
}
.portal-layout { position:relative; z-index:2; }
.secure-line { margin-top:28px; color:#7594aa; font:600 .58rem Orbitron,sans-serif; letter-spacing:.09em; }
.secure-line span { display:inline-block; width:55px; height:1px; margin-right:10px; vertical-align:middle; background:#58afe8; }

.portal-shell {
  padding:26px; border:1px solid #31526b;
  background:rgba(6,11,16,.88); backdrop-filter:blur(18px);
  box-shadow:0 30px 80px rgba(0,0,0,.38);
}
.portal-tabs { display:grid; grid-template-columns:1fr 1fr; margin-bottom:24px; border-bottom:1px solid #253a4a; }
.portal-tab {
  padding:13px; color:#718493; border:0; border-bottom:2px solid transparent;
  background:transparent; cursor:pointer; font:600 .62rem Orbitron,sans-serif; letter-spacing:.09em;
}
.portal-tab.active { color:#bce4ff; border-bottom-color:#58afe8; }
.portal-form { display:none; gap:15px; }
.portal-form.active { display:grid; }
.portal-form label { display:grid; gap:7px; color:#7d91a1; font:600 .58rem Orbitron,sans-serif; letter-spacing:.08em; }
.platform-button {
  min-height:48px; margin-top:5px; color:#fff; border:1px solid #65b8ef;
  background:linear-gradient(#338bd1,#15598e); cursor:pointer;
  font:700 .64rem Orbitron,sans-serif; letter-spacing:.09em;
}
.text-button { color:#7aaed1; border:0; background:transparent; cursor:pointer; }
.form-message { margin:20px 0 0; color:#7c8892; text-align:center; font:600 .54rem Orbitron,sans-serif; letter-spacing:.08em; }

.dashboard-preview-section { background:#06090d; }
.dashboard-shell { display:grid; grid-template-columns:220px 1fr; border:1px solid #2a3945; background:#080d12; }
.dashboard-rail { display:grid; align-content:start; padding:22px; border-right:1px solid #273540; }
.dashboard-rail strong { margin-bottom:18px; color:#79bdeb; font:600 .62rem Orbitron,sans-serif; letter-spacing:.09em; }
.dashboard-rail span { padding:11px; color:#71808c; font-size:.78rem; }
.dashboard-rail .rail-active { color:#d9edfa; border-left:2px solid #59afe8; background:#0d1821; }
.dashboard-main { padding:28px; }
.dashboard-top { display:flex; align-items:center; justify-content:space-between; gap:25px; }
.dashboard-top small { color:#6e7d89; font:600 .57rem Orbitron,sans-serif; letter-spacing:.09em; }
.dashboard-top h3 { margin:7px 0; font-size:1.5rem; }
.verification-card { min-width:240px; padding:18px; border:1px solid #31536c; background:#0b151e; }
.verification-card span { color:#718392; font:600 .56rem Orbitron,sans-serif; letter-spacing:.08em; }
.verification-card strong { display:block; margin:7px 0 2px; color:#f4f7f8; font:700 .8rem Orbitron,sans-serif; letter-spacing:.08em; }
.verification-card p { margin:0; color:#86bddf; }
.dashboard-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:28px; }
.dashboard-cards a {
  display:grid; min-height:145px; align-content:center; padding:20px;
  color:inherit; text-decoration:none; border:1px solid #293945; background:linear-gradient(145deg,#101822,#090d12);
}
.dashboard-cards a:hover { border-color:#4a8dbc; transform:translateY(-3px); }
.dashboard-cards span { color:#4c6374; font:600 .58rem Orbitron,sans-serif; }
.dashboard-cards strong { margin:10px 0; font-family:Orbitron,sans-serif; }
.dashboard-cards small { color:#7f8b95; }

@media(max-width:900px){
 .platform-hero-grid,.portal-layout,.dashboard-shell{grid-template-columns:1fr}
 .catalog-grid{grid-template-columns:1fr}
 .dashboard-rail{border-right:0;border-bottom:1px solid #273540}
}
@media(max-width:650px){
 .platform-hero,.portal-hero{padding-top:135px}
 .dashboard-top{align-items:flex-start;flex-direction:column}
 .verification-card{width:100%;min-width:0}
 .dashboard-cards{grid-template-columns:1fr}
}

.featured-compound {
  margin-bottom: 28px;
}
.featured-card {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  min-height: 420px;
  overflow: hidden;
  border: 1px solid #35526a;
  background: linear-gradient(135deg,#111a24,#070b10);
  box-shadow: 0 32px 80px rgba(0,0,0,.35);
}
.featured-visual {
  position: relative;
  min-height: 420px;
  overflow: hidden;
  background: radial-gradient(circle at 50% 45%,rgba(58,145,214,.18),transparent 38%),#05080c;
}
.featured-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s ease, filter .45s ease;
  filter: saturate(.95) contrast(1.05);
}
.featured-card:hover .featured-visual img {
  transform: scale(1.035) rotate(.6deg);
  filter: saturate(1.05) contrast(1.08) brightness(1.04);
}
.featured-badge {
  position: absolute;
  top: 18px;
  left: 18px;
  padding: 8px 11px;
  color: #bfe6ff;
  border: 1px solid #3d7fab;
  background: rgba(4,8,12,.82);
  font: 600 .58rem Orbitron,sans-serif;
  letter-spacing: .1em;
}
.featured-copy {
  display: grid;
  align-content: center;
  padding: 34px;
}
.featured-copy .catalog-code {
  margin-bottom: 14px;
}
.featured-copy h2 {
  margin-bottom: 10px;
  font-size: clamp(2rem,4vw,3.6rem);
}
.featured-copy p {
  color: #94a2ad;
}
.featured-status {
  margin: 24px 0 8px;
  color: #7c8b97;
  font: 600 .58rem Orbitron,sans-serif;
  letter-spacing: .09em;
}
.featured-status strong {
  display: block;
  margin-top: 5px;
  color: #fff;
  font-size: .92rem;
}
.catalog-card-with-image {
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 18px;
  align-items: stretch;
}
.catalog-thumb {
  min-height: 230px;
  overflow: hidden;
  border: 1px solid #253746;
  background: #05080c;
}
.catalog-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease, filter .35s ease;
}
.catalog-card:hover .catalog-thumb img {
  transform: scale(1.05) rotate(.5deg);
  filter: brightness(1.06);
}
.catalog-card-main {
  display: flex;
  flex-direction: column;
}
.catalog-card-main .catalog-actions {
  margin-top: auto;
}
@media(max-width:800px){
  .featured-card,
  .catalog-card-with-image {
    grid-template-columns: 1fr;
  }
  .featured-visual {
    min-height: 320px;
  }
  .catalog-thumb {
    min-height: 260px;
  }
}

.strength-note {
  margin: 3px 0 20px;
  color: #7f8e99 !important;
  font-size: .8rem;
  line-height: 1.6;
}
.catalog-pending {
  display: inline-flex;
  align-items: center;
  padding: 11px 13px;
  color: #9ca9b3;
  border: 1px solid #3a4650;
  background: #10151a;
  font: 600 .58rem Orbitron,sans-serif;
  letter-spacing: .08em;
}


/* AGR PLATFORM 1.0 — V6 CATALOG VIALS */
.featured-visual {
  display:grid;
  place-items:center;
  padding:24px;
}
.featured-visual img {
  width:auto;
  max-width:100%;
  height:390px;
  object-fit:contain;
}
.catalog-thumb {
  display:grid;
  place-items:center;
  padding:14px;
}
.catalog-thumb img {
  width:auto;
  max-width:100%;
  height:260px;
  object-fit:contain;
}
.variant-chip {
  cursor:pointer;
  background:#0b1117;
}
.variant-chip:hover {
  transform:translateY(-2px);
  box-shadow:0 0 18px color-mix(in srgb, var(--chip) 35%, transparent);
}
@media(max-width:800px){
  .featured-visual img { height:320px; }
  .catalog-thumb img { height:300px; }
}


/* AGR PLATFORM 1.0 — V6.1 PROFESSIONAL ANIMATION PASS */

:root {
  --motion-fast: 180ms;
  --motion-medium: 420ms;
  --motion-slow: 900ms;
}

/* Smooth section reveal */
.motion-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity var(--motion-slow) cubic-bezier(.2,.7,.2,1),
    transform var(--motion-slow) cubic-bezier(.2,.7,.2,1);
}
.motion-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Floating research particles */
.ambient-particles {
  position: fixed;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 1;
}
.ambient-particles span {
  position: absolute;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: rgba(86,174,238,.55);
  box-shadow: 0 0 12px rgba(86,174,238,.55);
  animation: particleDrift var(--duration) linear infinite;
  animation-delay: var(--delay);
}
@keyframes particleDrift {
  0%   { transform: translate3d(0, 15vh, 0); opacity: 0; }
  15%  { opacity: .7; }
  85%  { opacity: .25; }
  100% { transform: translate3d(var(--x), -120vh, 0); opacity: 0; }
}

/* Vial card interaction */
.catalog-card,
.featured-card {
  transition:
    transform var(--motion-medium) cubic-bezier(.2,.7,.2,1),
    border-color var(--motion-medium) ease,
    box-shadow var(--motion-medium) ease;
  transform-style: preserve-3d;
  will-change: transform;
}
.catalog-card:hover,
.featured-card:hover {
  border-color: color-mix(in srgb, var(--strength, #4b91c8) 65%, #ffffff 10%);
  box-shadow:
    0 24px 60px rgba(0,0,0,.42),
    0 0 34px color-mix(in srgb, var(--strength, #4b91c8) 22%, transparent);
}
.catalog-thumb img,
.featured-visual img {
  transition:
    transform var(--motion-medium) cubic-bezier(.2,.7,.2,1),
    filter var(--motion-medium) ease,
    opacity 220ms ease;
  will-change: transform;
}
.catalog-card:hover .catalog-thumb img {
  transform: translateY(-7px) scale(1.025) rotate(.35deg);
  filter: brightness(1.08) contrast(1.04);
}
.featured-card:hover .featured-visual img {
  transform: translateY(-8px) scale(1.02) rotate(.25deg);
  filter: brightness(1.08) contrast(1.05);
}

/* Image crossfade when switching strengths */
.vial-swap-out {
  opacity: 0;
  transform: scale(.985);
}
.vial-swap-in {
  opacity: 1;
  transform: scale(1);
}

/* Button sweep */
.catalog-actions a,
.catalog-actions button,
.platform-button,
.button {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.catalog-actions a::after,
.catalog-actions button::after,
.platform-button::after,
.button::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-120%);
  background: linear-gradient(
    110deg,
    transparent 30%,
    rgba(255,255,255,.14) 50%,
    transparent 70%
  );
  transition: transform 700ms ease;
  z-index: -1;
}
.catalog-actions a:hover::after,
.catalog-actions button:hover::after,
.platform-button:hover::after,
.button:hover::after {
  transform: translateX(120%);
}

/* Strength-chip response */
.strength-chip,
.variant-chip {
  transition:
    transform var(--motion-fast) ease,
    box-shadow var(--motion-fast) ease,
    background var(--motion-fast) ease;
}
.strength-chip:hover,
.variant-chip:hover {
  transform: translateY(-2px);
  background: color-mix(in srgb, var(--chip) 10%, #0b1117);
  box-shadow: 0 0 18px color-mix(in srgb, var(--chip) 28%, transparent);
}

/* Shield parallax container */
.hero-visual {
  perspective: 1000px;
}
.hero-shield,
.shield-ring,
.scanner-line {
  transition: transform 220ms ease-out;
  will-change: transform;
}

/* Header compresses on scroll */
.site-header .nav-shell {
  transition:
    min-height var(--motion-medium) ease,
    padding var(--motion-medium) ease,
    background var(--motion-medium) ease,
    box-shadow var(--motion-medium) ease;
}
.site-header.is-scrolled .nav-shell {
  min-height: 62px;
  padding-top: 5px;
  padding-bottom: 5px;
  background: rgba(5,9,14,.88);
  box-shadow: 0 14px 38px rgba(0,0,0,.32);
}
.site-header.is-scrolled .brand-logo {
  width: 44px;
  height: 44px;
}

/* Soft status pulse, typography only */
.inventory-status {
  animation: statusBreathe 3.8s ease-in-out infinite;
}
@keyframes statusBreathe {
  0%,100% { opacity: 1; letter-spacing: .11em; }
  50%     { opacity: .82; letter-spacing: .13em; }
}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .motion-reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}
