/* NOVA Frontend R1-2 — Header / Footer / Navigation shell */

/* Shared shell */
.container {
  max-width:var(--nova-shell-max-width);
}

.page {
  padding-top:var(--nova-shell-header-height);
}

/* Header */
.site-header {
  position:fixed;
  inset:0 0 auto;
  z-index:60;
  height:var(--nova-shell-header-height);
  background:linear-gradient(180deg,rgba(4,5,10,.84),rgba(4,5,10,.60));
  border-bottom:1px solid transparent;
  backdrop-filter:blur(14px) saturate(135%);
  -webkit-backdrop-filter:blur(14px) saturate(135%);
  transition:
    background .28s var(--nova-ease),
    border-color .28s var(--nova-ease),
    box-shadow .28s var(--nova-ease);
}

.site-header.scrolled {
  background:var(--nova-shell-surface);
  border-bottom-color:var(--nova-shell-border);
  box-shadow:0 10px 36px rgba(0,0,0,.18);
}

.site-nav {
  height:var(--nova-shell-header-height);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
}

.brand-lockup {
  display:inline-flex;
  align-items:center;
  gap:11px;
  min-height:40px;
  color:var(--text);
  font-weight:800;
  font-size:19px;
  letter-spacing:.7px;
  cursor:pointer;
  user-select:none;
}

.brand-mark {
  position:relative;
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.12);
  background:
    linear-gradient(145deg,rgba(91,140,255,.18),rgba(37,230,200,.08)),
    rgba(255,255,255,.035);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 6px 22px rgba(60,95,255,.12);
}

.brand-mark .dot {
  width:10px;
  height:10px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--acc),var(--acc2));
  box-shadow:0 0 14px color-mix(in srgb,var(--acc) 78%,transparent);
}

.brand-name {
  transform:translateY(.5px);
}

.site-menu {
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  display:flex;
  align-items:center;
  gap:4px;
  padding:5px;
  border:1px solid rgba(255,255,255,.055);
  border-radius:13px;
  background:rgba(255,255,255,.018);
}

.site-menu .nav-link {
  position:relative;
  display:flex;
  align-items:center;
  min-height:36px;
  padding:0 11px;
  border-radius:9px;
  color:var(--muted);
  font-size:13.5px;
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
  transition:
    color .2s var(--nova-ease),
    background .2s var(--nova-ease),
    border-color .2s var(--nova-ease);
}

.site-menu .nav-link:hover {
  color:var(--text);
  background:rgba(255,255,255,.045);
}

.site-menu .nav-link.active {
  color:#fff;
  background:rgba(91,140,255,.10);
}

.site-menu .nav-link.active::after {
  content:"";
  position:absolute;
  left:11px;
  right:11px;
  bottom:3px;
  width:auto;
  height:1.5px;
  border-radius:99px;
  background:linear-gradient(90deg,var(--acc),var(--acc2));
  box-shadow:0 0 10px color-mix(in srgb,var(--acc) 45%,transparent);
}

.site-menu .nav-link-external::before,
.site-menu .nav-link-rayvex::before {
  content:"";
  width:5px;
  height:5px;
  margin-right:7px;
  border-radius:50%;
  background:rgba(255,255,255,.26);
}

.site-menu .nav-link-rayvex {
  color:#b7c6ff;
}

.site-menu .nav-link-rayvex::before {
  background:linear-gradient(135deg,var(--brand),var(--accent));
  box-shadow:0 0 10px rgba(91,140,255,.34);
}

.burger {
  display:none;
  width:42px;
  height:42px;
  padding:0;
  border:1px solid var(--nova-shell-border);
  border-radius:11px;
  background:rgba(255,255,255,.025);
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
}

.burger span {
  display:block;
  width:19px;
  height:1.5px;
  border-radius:99px;
  background:var(--text);
  transform-origin:center;
  transition:transform .22s var(--nova-ease),opacity .18s ease;
}

/* Footer */
.site-footer {
  position:relative;
  margin-top:54px;
  padding:58px 0 0;
  border-top:1px solid var(--nova-shell-border);
  background:
    radial-gradient(650px 250px at 12% 0%,rgba(91,140,255,.08),transparent 70%),
    linear-gradient(180deg,#060810,#04050a);
}

.site-footer::before {
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-1px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(91,140,255,.35),rgba(37,230,200,.22),transparent);
  opacity:.72;
}

.footer-shell {
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(150px,.65fr) minmax(220px,.75fr);
  gap:64px;
  align-items:start;
  padding-bottom:46px;
}

.footer-brand {
  max-width:470px;
}

.footer-logo {
  width:max-content;
  margin-bottom:16px;
}

.site-footer .about-blurb {
  max-width:440px;
  color:var(--muted);
  font-size:14px;
  line-height:1.75;
}

.footer-column h4 {
  margin:6px 0 16px;
  color:var(--text);
  font-size:12px;
  font-weight:800;
  letter-spacing:1.8px;
  text-transform:uppercase;
}

.footer-links {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px 18px;
}

.footer-links a,
.footer-contact a,
.footer-contact p,
.footer-legal a {
  color:var(--muted);
  font-size:13.5px;
  transition:color .18s ease;
}

.footer-links a,
.footer-contact a {
  cursor:pointer;
}

.footer-links a:hover,
.footer-contact a:hover,
.footer-legal a:hover {
  color:var(--text);
}

.footer-contact {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:9px;
}

.footer-contact h4 {
  margin-bottom:7px;
}

.footer-contact p {
  margin:0;
}

.footer-bottom {
  min-height:68px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  border-top:1px solid rgba(255,255,255,.065);
}

.site-footer .copy {
  color:var(--faint);
  font-size:12px;
}

.footer-legal {
  display:flex;
  align-items:center;
  gap:20px;
}

.footer-legal a {
  font-size:12px;
}

/* Tablet / mobile navigation */
@media (max-width:1080px) {
  .site-menu .nav-link {
    padding-inline:8px;
    font-size:13px;
  }
}

@media (max-width:940px) {
  .site-header,
  .site-nav {
    height:64px;
  }

  .page {
    padding-top:64px;
  }

  .site-nav {
    position:relative;
  }

  .burger {
    display:flex;
    position:relative;
    z-index:3;
  }

  .site-menu {
    position:fixed;
    left:16px;
    right:16px;
    top:74px;
    max-height:calc(100dvh - 90px);
    overflow-y:auto;
    overscroll-behavior:contain;
    transform:translateY(-8px) scale(.985);
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px;
    padding:12px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:16px;
    background:rgba(8,11,20,.96);
    box-shadow:var(--nova-shell-shadow);
    backdrop-filter:blur(20px) saturate(150%);
    -webkit-backdrop-filter:blur(20px) saturate(150%);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:
      opacity .2s var(--nova-ease),
      transform .2s var(--nova-ease),
      visibility .2s;
  }

  .site-menu.open {
    display:grid;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
  }

  .site-menu .nav-link {
    min-height:44px;
    padding:0 13px;
    justify-content:flex-start;
    border:1px solid transparent;
    background:rgba(255,255,255,.025);
  }

  .site-menu .nav-link:hover,
  .site-menu .nav-link.active {
    border-color:rgba(255,255,255,.07);
  }

  .site-menu .nav-link.active::after {
    left:13px;
    right:auto;
    bottom:6px;
    width:24px;
  }

  .burger[aria-expanded="true"] span:nth-child(1) {
    transform:translateY(6.5px) rotate(45deg);
  }

  .burger[aria-expanded="true"] span:nth-child(2) {
    opacity:0;
  }

  .burger[aria-expanded="true"] span:nth-child(3) {
    transform:translateY(-6.5px) rotate(-45deg);
  }

  .footer-shell {
    grid-template-columns:1fr 1fr;
    gap:40px;
  }

  .footer-brand {
    grid-column:1 / -1;
  }
}

@media (max-width:390px) {
  .site-menu {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
  }

  .site-menu .nav-link {
    min-width:0;
    padding-inline:10px;
    font-size:12.5px;
  }

  .footer-shell {
    grid-template-columns:1fr;
    gap:32px;
  }

  .footer-brand {
    grid-column:auto;
  }

  .footer-links {
    grid-template-columns:1fr 1fr;
  }

  .footer-bottom {
    min-height:88px;
    align-items:flex-start;
    justify-content:center;
    flex-direction:column;
    gap:8px;
    padding:18px 0;
  }

  .footer-legal {
    gap:14px;
  }
}
/* Frontend R1 Website Shell consolidation */

/* Primary nav — Lucky Draw is an independent right-side CTA. */
.site-menu .nav-cta-lucky {
  margin-left:10px;
  min-height:36px;
  padding:0 15px;
  border:1px solid rgba(117,154,255,.30);
  color:#f7f9ff;
  font-weight:750;
  background:
    linear-gradient(135deg,rgba(91,140,255,.22),rgba(37,230,200,.14)),
    rgba(255,255,255,.035);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 8px 24px rgba(31,75,180,.14);
}

.site-menu .nav-cta-lucky:hover {
  color:#fff;
  border-color:rgba(117,154,255,.46);
  background:
    linear-gradient(135deg,rgba(91,140,255,.30),rgba(37,230,200,.19)),
    rgba(255,255,255,.05);
}

.site-menu .nav-cta-lucky::after {
  display:none;
}

/* Shared skeleton for Home / Company / Technology / News / Insights / Honors. */
.page-shell {
  min-height:100vh;
}

.page-shell > section,
.page-shell > .page-hero,
.page-shell-home > .hero {
  position:relative;
}

.page-shell:not(.page-shell-home) .page-hero .inner {
  max-width:900px;
}

.page-shell:not(.page-shell-home) .page-hero h1 {
  max-width:900px;
  text-wrap:balance;
}

.page-shell .kicker {
  letter-spacing:.15em;
}

/* R1 footer */
.site-footer-r1 .footer-shell {
  grid-template-columns:minmax(0,1.4fr) minmax(180px,.7fr) minmax(200px,.7fr);
}

.site-footer-r1 .footer-connect {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
}

.site-footer-r1 .footer-connect h4 {
  margin-bottom:2px;
}

.site-footer-r1 .footer-contact-note {
  margin:0;
  color:var(--muted);
  font-size:13.5px;
  line-height:1.7;
}

.site-footer-r1 .footer-lucky-cta {
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:42px;
  padding:0 16px;
  border:1px solid rgba(117,154,255,.28);
  border-radius:11px;
  color:#f7f9ff;
  font-size:13.5px;
  font-weight:750;
  background:
    linear-gradient(135deg,rgba(91,140,255,.20),rgba(37,230,200,.12)),
    rgba(255,255,255,.025);
  cursor:pointer;
}

.site-footer-r1 .footer-lucky-cta:hover {
  color:#fff;
  border-color:rgba(117,154,255,.44);
}

.site-footer-r1 .footer-status {
  color:var(--faint);
  font-size:12px;
  letter-spacing:.03em;
}

@media (max-width:1080px) {
  .site-menu .nav-cta-lucky {
    padding-inline:12px;
    margin-left:6px;
  }
}

@media (max-width:940px) {
  /* Keep the accepted two-column mobile menu and make CTA span both columns. */
  .site-menu .nav-cta-lucky {
    grid-column:1 / -1;
    min-height:46px;
    margin:4px 0 0;
    justify-content:center;
    border-color:rgba(117,154,255,.30);
  }

  .site-footer-r1 .footer-shell {
    grid-template-columns:1fr 1fr;
  }

  .site-footer-r1 .footer-brand {
    grid-column:1 / -1;
  }
}

@media (max-width:620px) {
  .site-footer-r1 .footer-shell {
    grid-template-columns:1fr;
  }

  .site-footer-r1 .footer-brand {
    grid-column:auto;
  }

  .site-footer-r1 .footer-status {
    display:none;
  }
}
/* Frontend R1 final DUSSIE branding */
.site-header{height:122px;min-height:122px}
.site-nav{height:122px;align-items:center}
.page{padding-top:122px}
.site-header .dussie-original-header,.site-header .dussie-transparent-header{width:145px;height:122px;min-height:122px;padding:0;margin:0;display:flex;align-items:center;justify-content:flex-start;overflow:visible;flex:none}
.site-header .dussie-original-header-image,.site-header .dussie-transparent-header-image{display:block;width:145px;height:auto;max-height:122px;object-fit:contain;object-position:left center;background:transparent;opacity:1;filter:drop-shadow(0 4px 10px rgba(208,151,42,.16))}
.site-footer .brand-lockup-dussie-exact-footer{display:flex;align-items:center;justify-content:flex-start;width:min(292px,100%);min-height:0;padding:0}
.site-footer .dussie-brand-image-exact-footer{display:block;width:292px;max-width:100%;height:auto;object-fit:contain;object-position:left center;background:transparent;opacity:1;filter:none}
@media (max-width:940px){.site-header{height:88px;min-height:88px}.site-nav{height:88px}.page{padding-top:88px}.site-header .dussie-original-header,.site-header .dussie-transparent-header{width:100px;height:86px;min-height:86px}.site-header .dussie-original-header-image,.site-header .dussie-transparent-header-image{width:100px;max-height:86px}.site-menu{top:98px;max-height:calc(100dvh - 114px)}.site-footer .dussie-brand-image-exact-footer{width:268px}}
@media (max-width:640px){.site-header{height:84px;min-height:84px}.site-nav{height:84px}.page{padding-top:84px}.site-header .dussie-original-header,.site-header .dussie-transparent-header{width:94px;height:82px;min-height:82px}.site-header .dussie-original-header-image,.site-header .dussie-transparent-header-image{width:94px;max-height:82px}.site-menu{top:94px;max-height:calc(100dvh - 110px)}.site-footer .dussie-brand-image-exact-footer{width:238px}}
