:root{ --bg:#ffffff; --text:#0b1220; --muted:#0b1220; --border:#e2e8f0; --soft:#f8fafc; --card:#ffffff; /* Brand */ --brand:#0b1220; --brandAccent:#0ea5e9; --brandAccent2:#22c55e; --brandWarn:#f59e0b; --radius:16px; --shadow: 0 12px 28px rgba(15, 23, 42, .10);
} *{box-sizing:border-box}
html{scroll-behavior:smooth}
body{ margin:0; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji"; color:var(--text); background:var(--bg); line-height:1.55;
} a{color:inherit; text-decoration:none}
a:hover{opacity:.92} .container{ width:min(1120px, calc(100% - 32px)); margin-inline:auto;
} header{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.9); backdrop-filter: blur(10px); border-bottom:1px solid var(--border);
} .navbar{ display:flex; align-items:center; justify-content:space-between; padding:18px 0; gap:16px;
} .brand{ display:flex; align-items:center; gap:10px; font-weight:800; letter-spacing:-.02em;
}
.brand-mark{ width:34px; height:34px; border-radius:12px; background:var(--brand); display:grid; place-items:center; overflow:hidden;
}
.brand-mark img{width:24px;height:24px;display:block} nav{ display:flex; gap:18px; font-size:14px; color:var(--muted);
}
nav a{padding:8px 10px; border-radius:12px}
nav a.active{ color:var(--text); background:rgba(15,23,42,.04); border:1px solid var(--border);
} .cta{ display:inline-flex; align-items:center; justify-content:center; padding:10px 14px; border-radius:12px; border:1px solid var(--border); font-size:14px; font-weight:700; background:#fff;
}
.cta.primary{ background:var(--brand); color:#fff; border-color:var(--brand);
}
.cta.primary:hover{background:#0a162a} .mobile-toggle{ display:none; border:1px solid var(--border); background:#fff; padding:10px 12px; border-radius:12px; font-weight:800;
} .mobile-nav{display:none;border-top:1px solid var(--border)}
.mobile-nav a{display:block;padding:14px 0;border-bottom:1px solid var(--border);color:var(--muted)}
.mobile-nav a.active{color:var(--text);font-weight:800} .section{padding:56px 0}
.section.border-top{border-top:1px solid var(--border)}
.section.soft{background:var(--soft)} .grid{display:grid;gap:18px}
.grid.two{grid-template-columns: 1.15fr .85fr}
.grid.three{grid-template-columns: repeat(3, 1fr)}
.grid.four{grid-template-columns: repeat(4, 1fr)}
@media (max-width: 980px){ .grid.two, .grid.three, .grid.four{grid-template-columns: 1fr} nav{display:none} .mobile-toggle{display:inline-flex} .mobile-nav.open{display:block}
} .kicker{ font-size:12px; font-weight:900; color:var(--muted); text-transform:uppercase; letter-spacing:.12em;
}
h1{margin:.35rem 0 0 0;font-size:46px;line-height:1.08;letter-spacing:-.04em}
h2{margin:0;font-size:32px;letter-spacing:-.03em}
p{margin:.65rem 0 0 0;color:var(--muted)}
.lede{font-size:18px;color:var(--muted);max-width:62ch} .card{ border:1px solid var(--border); background:var(--card); border-radius:var(--radius); padding:20px; box-shadow: var(--shadow);
}
.card.flat{box-shadow:none}
.card h3{margin:0;font-size:18px;letter-spacing:-.02em}
.card p{font-size:14px} .hero{padding:64px 0;border-bottom:1px solid var(--border)}
.hero-art{ border:1px solid var(--border); border-radius:var(--radius); aspect-ratio: 4 / 3; position:relative; overflow:hidden; background: var(--brand);
}
.hero-art img{width:100%;height:100%;object-fit:cover;display:block}
.hero-overlay{ position:absolute; inset:0; background: linear-gradient(90deg, rgba(11,18,32,.22), rgba(11,18,32,.00));
}
.hero-badge{ position:absolute;left:18px;bottom:18px; background:rgba(255,255,255,.92); border:1px solid rgba(226,232,240,.9); border-radius:14px; padding:14px; width:min(260px, 78%); box-shadow: var(--shadow);
}
.hero-badge .small{font-size:12px;color:var(--muted);margin:0}
.hero-badge .big{font-weight:900;margin:4px 0 0 0;color:var(--text)} .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px} .tiles{display:grid;grid-template-columns: repeat(4, 1fr);gap:14px;margin-top:26px}
@media (max-width:980px){.tiles{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.tiles{grid-template-columns:1fr}} .tile{ border:1px solid var(--border); background:#fff; border-radius:14px; padding:14px;
}
.tile .t{font-weight:900;font-size:14px;color:var(--text)}
.tile .d{font-size:13px;color:var(--muted);margin-top:4px} .list{margin:10px 0 0 0;padding:0 0 0 18px;color:var(--muted)}
.list li{margin:6px 0} .footer{border-top:1px solid var(--border);padding:40px 0;background:#fff}
.footer-grid{display:grid;grid-template-columns: 1.3fr 1fr 1fr;gap:20px}
@media (max-width:980px){.footer-grid{grid-template-columns:1fr}}
.footer small{color:var(--muted)}
.footer a{color:var(--muted)}
.footer a:hover{color:var(--text)}
.footer-links{display:grid;gap:10px;font-size:14px} .form{display:grid;gap:12px;margin-top:16px}
input, textarea{width:100%;padding:12px 12px;border-radius:12px;border:1px solid var(--border);font:inherit}
textarea{min-height:120px;resize:vertical}
.note{font-size:13px;color:var(--muted)}
.badge{ display:inline-flex; padding:6px 10px; border-radius:999px; border:1px solid var(--border); background:#fff; font-size:12px; color:var(--muted); font-weight:800;
}
.project-img{ border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; background:#0b1220;
}
.project-img img{width:100%;height:auto;display:block} /* Responsive logo sizing (big on desktop, scales down on mobile) */
.brand-logo{ height: clamp(56px, 10vw, 180px); width: auto; max-width: 520px; display: block;
}
@media (max-width: 980px){ .brand-logo{ height: clamp(44px, 14vw, 120px); max-width: 420px; }
}
@media (max-width: 520px){ .brand-logo{ height: clamp(40px, 18vw, 96px); max-width: 320px; }
} .footer-logo{ height: clamp(48px, 7vw, 140px); width: auto; max-width: 520px; display:block;
}
@media (max-width: 980px){ .footer-logo{ height: clamp(40px, 10vw, 110px); max-width: 420px; }
}
@media (max-width: 520px){ .footer-logo{ height: clamp(36px, 12vw, 90px); max-width: 320px; }
} /* Brand-aligned typography */
h1, h2, h3, h4, h5, h6 { color: #0b1220;
} p, li, a, span { color: #0b1220;
} .hero.banner::before { content: ""; position: absolute; inset: 0; background: rgba(11,18,32,0.55); /* WORLDCORE navy overlay */
}
.hero.banner .container { position: relative; z-index: 2;
}
@media (max-width: 980px){ .hero.banner{ min-height: 540px; }
}
@media (max-width: 520px){ .hero.banner{ min-height: 540px; }
} /* Wide hero banner using construction clouds image */
.hero.banner { position: relative; min-height: 540px; background-image: url('../img/hero-construction-clouds.jpg'); background-size: cover; background-position: center bottom;
} .hero.banner::before { content: ""; position: absolute; inset: 0; background: rgba(255,255,255,0.35); /* light overlay so black text is readable */
} .hero.banner .container { position: relative; z-index: 2;
} @media (max-width: 980px){ .hero.banner{ min-height: 540px; }
}
@media (max-width: 520px){ .hero.banner{ min-height: 540px; }
} /* Banner inner layout */
.hero.banner .hero-inner{ padding: 64px 0;
}
@media (max-width: 980px){ .hero.banner .hero-inner{ padding: 48px 0; }
}
@media (max-width: 520px){ .hero.banner .hero-inner{ padding: 36px 0; }
} .hero .cta:not(.primary) { background: transparent; color: #0b1220 !important; border-color: #0b1220;
} .cta.primary { background: #0b1220; color: #ffffff !important;
} .cta:hover { opacity: 0.9;
} /* === SINGLE SOURCE OF TRUTH: CTA BUTTONS === */
.cta { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 0 36px; font-size: 18px; font-weight: 600; border-radius: 10px; border: 3px solid #0b1220; background: transparent; color: #0b1220; box-sizing: border-box; white-space: nowrap;
} /* Primary CTA */
.cta.primary { background: #0b1220; color: #ffffff !important;
} /* Hover (identical behaviour) */
.cta:hover { opacity: 0.92;
} /* Ensure hero CTAs do not get overridden */
.hero .cta,
.hero .cta.primary { background-clip: padding-box;
} /* === Banner text should be black, but CTAs must keep their button colours === */
.hero.banner .kicker,
.hero.banner h1,
.hero.banner h2,
.hero.banner h3,
.hero.banner p { color: #000000 !important;
} /* Banner CTAs (override any banner link colouring) */
.hero.banner a.cta { color: #0b1220 !important; background: transparent !important; border-color: #0b1220 !important;
} .hero.banner a.cta.primary { background: #0b1220 !important; color: #ffffff !important; border-color: #0b1220 !important;
}


/* =========================================================
   WORLDCORE PREMIUM POLISH (v34)
   ========================================================= */

:root{
  --brand: #0b1220;
  --surface: #ffffff;
  --surface-2: #f6f8fb;
  --text: #0b1220;
  --muted: rgba(11,18,32,0.78);
  --border: rgba(11,18,32,0.14);
  --shadow-1: 0 10px 30px rgba(11,18,32,0.08);
  --shadow-2: 0 18px 55px rgba(11,18,32,0.12);
  --radius: 16px;
}

html{ scroll-behavior:smooth; }
body{
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1{ font-size: clamp(36px, 4.2vw, 60px); line-height: 1.08; letter-spacing: -0.02em; }
h2{ font-size: clamp(28px, 3vw, 40px); line-height: 1.15; letter-spacing: -0.015em; }
h3{ font-size: clamp(20px, 2.2vw, 28px); line-height: 1.25; }
p{ color: var(--muted); font-size: 18px; }
@media (max-width: 520px){ p{ font-size: 16px; } }

.section{ padding: 92px 0; }
@media (max-width: 980px){ .section{ padding: 72px 0; } }
@media (max-width: 520px){ .section{ padding: 56px 0; } }

.hero{ padding: 86px 0; }
@media (max-width: 980px){ .hero{ padding: 64px 0; } }
@media (max-width: 520px){ .hero{ padding: 54px 0; } }

.hero.banner::before{
  background: rgba(255,255,255,0.26);
  backdrop-filter: blur(2px);
}

/* Buttons */
.cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height: 56px;
  padding: 0 34px;
  border-radius: 12px;
  border: 2px solid var(--brand);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.2px;
  background: transparent;
  color: var(--brand) !important;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, opacity .18s ease;
  box-shadow: 0 6px 18px rgba(11,18,32,0.06);
}
.cta.primary{
  background: var(--brand) !important;
  color:#fff !important;
  box-shadow: 0 14px 34px rgba(11,18,32,0.22);
}
.cta:hover{
  transform: translateY(-2px);
  box-shadow: var(--shadow-1);
  opacity: 0.98;
}
.cta.primary:hover{ box-shadow: var(--shadow-2); }
.cta:active{ transform: translateY(0px); }

/* Cards */
.card, .project-card, .feature, .panel{
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: 0 10px 26px rgba(11,18,32,0.06);
}
.card:hover, .project-card:hover, .feature:hover, .panel:hover{
  box-shadow: var(--shadow-1);
  transform: translateY(-2px);
  transition: transform .18s ease, box-shadow .18s ease;
}

img{ border-radius: 14px; }
.project-card img, .card img{ border-radius: 14px; object-fit: cover; }

/* Nav */
.nav a{ font-weight: 700; letter-spacing: 0.2px; }
.nav a:hover{ opacity:0.82; }

/* Footer */
footer{ background: var(--brand); color: rgba(255,255,255,0.86); }
footer a{
  color: rgba(255,255,255,0.92) !important;
  border-bottom-color: rgba(255,255,255,0.25) !important;
}
footer a:hover{ border-bottom-color: rgba(255,255,255,0.55) !important; opacity: 0.95; }
.footer-links{ margin-top: 18px; margin-bottom: 24px; gap: 16px; }
footer p, footer li, footer span{ color: rgba(255,255,255,0.78) !important; }

/* Reveal */
.reveal{
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .55s ease, transform .55s ease;
  will-change: opacity, transform;
}
.reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
}

hr{ border-color: var(--border); }



/* WORLDCORE logo sizing (v43) */
.brand-logo{
  height: 54px;
  width: auto;
}
.footer-logo{
  height: 54px;
  width: auto;
}
@media (max-width: 820px){
  .brand-logo{ height: 44px; }
  .footer-logo{ height: 44px; }
}
@media (max-width: 480px){
  .brand-logo{ height: 36px; }
  .footer-logo{ height: 36px; }
}



/* WORLDCORE logo sizing (v44 - larger) */
.brand-logo{
  height: 200px !important;
  width: auto;
}
.footer-logo{
  height: 200px !important;
  width: auto;
}
@media (max-width: 820px){
  .brand-logo{ height: 120px !important; }
  .footer-logo{ height: 120px !important; }
}
@media (max-width: 480px){
  .brand-logo{ height: 80px !important; }
  .footer-logo{ height: 80px !important; }
}



/* Logo fix v47 */
.brand-logo{
  height: 48px !important;
  max-height: 48px;
  width: auto;
  object-fit: contain;
}

.footer-logo{
  height: 40px !important;
  max-height: 40px;
  width: auto;
  object-fit: contain;
}

.header{
  display:flex;
  align-items:center;
}

@media (max-width: 768px){
  .brand-logo{
    height: 36px !important;
  }
  .footer-logo{
    height: 32px !important;
  }
}



/* =========================================================
   WORLDCORE PREMIUM HEADER (v48)
   ========================================================= */
header{
  position: sticky;
  top: 0;
  z-index: 999;
  background: rgba(255,255,255,0.88);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(11,18,32,0.10);
}
header.scrolled{
  box-shadow: 0 12px 40px rgba(11,18,32,0.10);
  background: rgba(255,255,255,0.94);
}
header .navbar{
  padding: 16px 0;
  gap: 18px;
}
header .brand{
  display:flex;
  align-items:center;
  gap: 12px;
}
.brand-logo{
  height: 44px !important;
  max-height: 44px;
  width: auto;
  object-fit: contain;
  display:block;
}
nav[aria-label="Primary navigation"]{
  display:flex;
  align-items:center;
  gap: 18px;
}
nav[aria-label="Primary navigation"] a[data-nav]{
  position: relative;
  font-weight: 700;
  letter-spacing: 0.2px;
  padding: 10px 6px;
  color: rgba(11,18,32,0.92);
  text-decoration: none;
  transition: opacity .18s ease, transform .18s ease;
}
nav[aria-label="Primary navigation"] a[data-nav]:hover{
  opacity: 0.78;
}
nav[aria-label="Primary navigation"] a[data-nav].active{
  opacity: 1;
}
nav[aria-label="Primary navigation"] a[data-nav].active::after{
  content:"";
  position:absolute;
  left: 6px;
  right: 6px;
  bottom: 4px;
  height: 2px;
  border-radius: 2px;
  background: rgba(11,18,32,0.92);
}

/* CTA in header */
header .cta.primary{
  min-height: 46px;
  padding: 0 22px;
  border-radius: 12px;
  font-size: 16px;
}

/* Mobile toggle button polish */
.mobile-toggle{
  border: 1px solid rgba(11,18,32,0.18);
  background: rgba(255,255,255,0.72);
  border-radius: 12px;
  padding: 10px 14px;
  font-weight: 800;
  letter-spacing: 0.3px;
  transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.mobile-toggle:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 26px rgba(11,18,32,0.10);
}

/* Mobile nav panel */
.mobile-nav{
  border-top: 1px solid rgba(11,18,32,0.10);
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.mobile-nav a{
  font-weight: 800;
  letter-spacing: 0.2px;
}

/* Footer logo a touch smaller and aligned */
.footer-logo{
  height: 34px !important;
  max-height: 34px;
  width: auto;
  object-fit: contain;
  display:block;
}

/* Responsive */
@media (max-width: 920px){
  nav[aria-label="Primary navigation"]{
    display:none;
  }
  header .navbar{
    padding: 14px 0;
  }
}
@media (max-width: 520px){
  .brand-logo{ height: 38px !important; }
  header .cta.primary{ display:none; }
}



/* v49 Logo upscale */
.brand-logo{
  height: 88px !important;
  max-height: 88px;
  width: auto;
}
.footer-logo{
  height: 64px !important;
  max-height: 64px;
  width: auto;
}

@media (max-width: 768px){
  .brand-logo{ height: 60px !important; }
  .footer-logo{ height: 48px !important; }
}

@media (max-width: 480px){
  .brand-logo{ height: 48px !important; }
  .footer-logo{ height: 40px !important; }
}



/* v50 Premium 360 page */
.hero-compact .hero-grid{
  display:grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 40px;
  align-items:center;
}
.hero-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:18px;
}
.hero-metrics{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
  margin-top: 26px;
}
.metric{
  border: 1px solid rgba(11,18,32,0.10);
  border-radius: 14px;
  padding: 14px 14px;
  background: rgba(255,255,255,0.66);
  backdrop-filter: blur(6px);
}
.metric-k{
  display:block;
  font-weight: 800;
  font-size: 14px;
  letter-spacing: 0.2px;
  color: rgba(11,18,32,0.92);
}
.metric-v{
  display:block;
  margin-top: 6px;
  font-size: 14px;
  color: rgba(11,18,32,0.72);
}
.hero-figure img{
  width:100%;
  height:auto;
  border-radius: 18px;
  box-shadow: 0 18px 60px rgba(11,18,32,0.12);
}
.section-alt{
  background: #f6f8fb;
}
.grid-3{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 18px;
  margin-top: 24px;
}
.card.pad{
  padding: 22px 22px;
}
.split{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
  align-items:start;
}
.checklist{
  margin-top: 16px;
  padding-left: 18px;
}
.checklist li{
  margin: 10px 0;
  color: rgba(11,18,32,0.78);
}
.steps{
  display:flex;
  flex-direction:column;
  gap: 14px;
}
.step{
  display:grid;
  grid-template-columns: 58px 1fr;
  gap: 14px;
  align-items:start;
  padding: 18px 18px;
  border: 1px solid rgba(11,18,32,0.12);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 26px rgba(11,18,32,0.06);
}
.step-n{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 58px;
  height: 58px;
  border-radius: 16px;
  background: rgba(11,18,32,0.06);
  font-weight: 900;
  letter-spacing: 0.6px;
}
.callout{
  margin-top: 34px;
  padding: 26px 26px;
  border-radius: 18px;
  background: #0b1220;
  color: rgba(255,255,255,0.88);
  box-shadow: 0 18px 55px rgba(11,18,32,0.18);
}
.callout h3{ color:#fff; margin-top: 0; }
.callout p{ color: rgba(255,255,255,0.78); }
@media (max-width: 980px){
  .hero-compact .hero-grid{ grid-template-columns: 1fr; }
  .hero-metrics{ grid-template-columns: 1fr; }
  .grid-3{ grid-template-columns: 1fr; }
  .split{ grid-template-columns: 1fr; }
}
