:root { --adema-signature:1; --signature-ease:cubic-bezier(.075,.82,.165,1); }
/* Premium loader: always finite, CSS dismisses it even if JS stops. */
.brand-loader { position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:radial-gradient(circle at 50% 43%,#fff 0,#f5f9ff 60%,#eef3f9 100%);animation:signature-loader-out 360ms cubic-bezier(.22,.61,.36,1) 840ms forwards;pointer-events:none; }
.brand-loader-inner { display:flex;flex-direction:column;align-items:center;gap:22px; }
.brand-loader-seal { width:148px;height:148px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid #064da612;box-shadow:0 18px 55px #064da618;position:relative; }
.brand-loader-seal::after { content:"";position:absolute;inset:-7px;border:1px solid #064da625;border-top-color:var(--red);border-radius:50%;animation:signature-seal-turn 1000ms ease-out both; }
.brand-loader img { width:112px;height:112px;object-fit:contain;animation:signature-logo-in 650ms var(--signature-ease) both; }
.brand-loader-name { color:var(--blue);font-size:.7rem;font-weight:800;letter-spacing:.14em;animation:signature-name-in 450ms ease 180ms both; }
.brand-loader-line { width:172px;height:3px;background:#e7eaed;overflow:hidden;border-radius:4px; }
.brand-loader-line::after { content:"";display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--red));transform-origin:left;animation:signature-progress 840ms var(--signature-ease) both; }
@keyframes signature-progress { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes signature-logo-in { from { opacity:0;clip-path:inset(100% 0 0 0);transform:translateY(8px) scale(.96); } to { opacity:1;clip-path:inset(0);transform:none; } }
@keyframes signature-name-in { from { opacity:0;transform:translateY(5px); } to { opacity:1;transform:none; } }
@keyframes signature-seal-turn { from { transform:rotate(-50deg); } to { transform:rotate(0); } }
@keyframes signature-loader-out { to { opacity:0;visibility:hidden; } }
/* Existing hero grid and spacing are kept. Words preserve the original spaces. */
.hero-word { display:inline-block; }
.hero-media,.mosaic { position:relative; }
.hero-media { isolation:isolate; }
.hero-media::after { content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 65%,#073b5233); }
.hero-badge { position:absolute;left:16px;bottom:16px;z-index:2;display:inline-flex;gap:8px;align-items:center;padding:10px 14px;max-width:calc(100% - 32px);border:1px solid #ffffff70;background:#ffffffed;color:var(--navy);border-radius:40px;box-shadow:0 6px 22px #073b5220;font-size:.68rem;font-weight:800;letter-spacing:.02em;line-height:1.3;pointer-events:none; }
.hero-badge::before { content:"";width:7px;height:7px;flex-shrink:0;background:var(--red);border-radius:50%;box-shadow:0 0 0 4px #ef1b2310; }
.hero-actions .btn::after { content:"↗";font-size:1.1em;transition:transform 220ms ease; }
.brand-logo { width:64px;height:64px;flex-shrink:0;object-fit:contain; }
.footer-logo { width:84px;height:84px;object-fit:contain; }
.footer-credit a { color:#fff; }
.footer-bottom { font-size:.72rem; }
@media(hover:hover) and (pointer:fine) {
  .hero-actions .btn:hover::after { transform:translate(2px,-2px); }
  .brand:hover .brand-logo { filter:drop-shadow(0 3px 8px #064da622); }
}
@media(max-width:767px) {
  .brand-loader { animation:signature-loader-out 190ms ease 460ms forwards; }
  .brand-loader-seal { width:120px;height:120px; }
  .brand-loader img { width:92px;height:92px;animation-duration:360ms; }
  .brand-loader-line::after { animation-duration:460ms; }
  .brand-loader-name { font-size:.64rem;animation-duration:220ms;animation-delay:100ms; }
  .brand-logo { width:52px;height:52px; }
  .hero-badge { left:12px;bottom:12px;padding:8px 10px;font-size:.6rem;max-width:calc(100% - 24px); }
  /* Repair the inherited specificity conflict so secondary heroes fit mobile. */
  .page-hero .hero-inner { grid-template-columns:1fr; }
  .mosaic img { height:140px; }
  .mosaic .hero-badge { left:8px;bottom:8px;font-size:.6rem; }
}
@media(max-width:440px) { .mosaic img { height:120px; } }
@media(prefers-reduced-motion:reduce) {
  .brand-loader { display:none;animation:none; }
  .hero-actions .btn::after { transition:none; }
  .hero-actions .btn:hover::after { transform:none; }
}
