
:root{
  --bg:#f6f8fb;
  --bg2:#ffffff;
  --bg3:#eef4fb;
  --line:#d9e2ec;
  --text:#122030;
  --muted:#516173;
  --accent:#2f80ed;
  --accent2:#7cb5ff;
  --accent3:#bfe1ff;
  --deep:#0f1e31;
  --max:1240px;
  --radius:28px;
  --radius-sm:18px;
  --shadow:0 20px 50px rgba(17,32,48,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at 20% 10%, rgba(70,140,255,.12), transparent 35%),
    radial-gradient(circle at 80% 90%, rgba(120,200,255,.10), transparent 40%),
    linear-gradient(180deg,#f9fbff 0%,#eef3f9 100%);
  line-height:1.6;
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed; inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(18,32,48,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(18,32,48,.03) 1px, transparent 1px);
  background-size:58px 58px;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.28), transparent 88%);
  opacity:.45;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.container{width:min(var(--max), calc(100% - 40px)); margin:0 auto}

.site-header{
  position:sticky; top:0; z-index:60;
  backdrop-filter:blur(16px);
  background:rgba(246,248,251,.82);
  border-bottom:1px solid rgba(18,32,48,.08);
  padding:6px 0;
}
.nav{
  min-height:84px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.brand{display:flex; align-items:center; gap:16px; min-width:0}
.brand img{height:110px; width:auto}
.brand-meta strong{display:block; font-size:.96rem; letter-spacing:.02em}
.brand-meta span{color:var(--muted); font-size:.8rem}
.nav-links{display:flex; align-items:center; gap:24px; color:var(--muted); flex-wrap:wrap; font-size:.96rem}
.nav-links a:hover,.nav-links a.active{color:var(--text)}

.hero{
  position:relative;
  padding:64px 0 28px;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute;
  inset:-8% -8% auto auto;
  width:58vw; height:58vw; max-width:780px; max-height:780px;
  border-radius:50%;
  background:
    radial-gradient(circle, rgba(47,128,237,.18), transparent 42%),
    radial-gradient(circle at 38% 36%, rgba(120,200,255,.18), transparent 22%);
  filter:blur(10px);
  animation:driftGlow 18s ease-in-out infinite alternate;
  pointer-events:none;
}
.hero::after{
  content:"";
  position:absolute;
  left:-6%; top:8%;
  width:36vw; height:36vw; max-width:520px; max-height:520px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(183,221,255,.22), transparent 62%);
  filter:blur(24px);
  animation:driftGlow2 22s ease-in-out infinite alternate;
  pointer-events:none;
}
.photonic-flow{
  position:absolute; inset:0; pointer-events:none; opacity:.7;
}
.photonic-flow::before,.photonic-flow::after{
  content:"";
  position:absolute;
  width:1200px; height:320px; border-radius:50%;
  filter:blur(18px);
  mix-blend-mode:screen;
  background:
    radial-gradient(circle at 15% 50%, rgba(47,128,237,.18), transparent 18%),
    radial-gradient(circle at 25% 48%, rgba(124,181,255,.18), transparent 15%),
    linear-gradient(90deg, rgba(47,128,237,0), rgba(47,128,237,.12), rgba(124,181,255,.14), rgba(47,128,237,0));
}
.photonic-flow::before{top:86px; right:-280px; transform:rotate(-12deg); animation:flowA 14s linear infinite}
.photonic-flow::after{top:220px; right:-340px; transform:rotate(8deg); animation:flowB 18s linear infinite}

.hero-wrap{display:grid; grid-template-columns:minmax(420px,.85fr) minmax(0,1.45fr); gap:28px; align-items:start; position:relative; z-index:1}
.eyebrow{
  display:inline-flex; align-items:center; gap:10px; min-height:34px; padding:0 14px;
  border-radius:999px; border:1px solid var(--line); background:rgba(255,255,255,.75);
  color:var(--muted); font-size:.88rem; margin-bottom:18px;
}
.eyebrow::before{
  content:""; width:8px; height:8px; border-radius:50%;
  background:linear-gradient(180deg,var(--accent),var(--accent2));
}
h1{margin:0; font-size:clamp(3rem,7vw,6rem); line-height:.92; letter-spacing:-.055em; max-width:1000px}
h2{margin:0; font-size:clamp(2rem,4vw,3.1rem); line-height:.96; letter-spacing:-.045em}
.lead{margin:24px 0 0; max-width:980px; font-size:clamp(1.06rem,1.7vw,1.22rem); color:var(--muted)}
.page-hero{padding:34px 0 8px}
.hero-actions{display:flex; flex-wrap:wrap; gap:14px; margin-top:30px}
.button{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:50px; padding:0 18px; border-radius:999px;
  border:1px solid transparent; font-weight:600; transition:160ms ease;
}
.button.primary{color:#fff; background:linear-gradient(135deg,var(--accent),#549df7); box-shadow:0 14px 34px rgba(47,128,237,.18)}
.button.secondary{background:rgba(255,255,255,.9); border-color:var(--line); color:var(--text)}
.button:hover{transform:translateY(-1px)}

.hero-panel,.card,.module{
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.78));
  box-shadow:var(--shadow);
}
.hero-panel{padding:24px; min-height:560px; position:relative; overflow:hidden}
.hero-panel::after{
  content:""; position:absolute; inset:auto -60px -60px auto;
  width:220px; height:220px; border-radius:50%;
  background:radial-gradient(circle, rgba(47,128,237,.14), transparent 65%);
}
.diagram-head{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px}
.diagram-head strong{font-size:1rem}
.diagram-head span{color:var(--muted); font-size:.88rem}

.system-map{display:grid; gap:16px}
.map-row{display:grid; gap:14px; grid-template-columns:1fr 1fr}
.map-card{
  border:1px solid var(--line); border-radius:22px; background:var(--bg2);
  padding:18px; min-height:118px; position:relative; overflow:hidden;
}
.map-card .label{
  color:var(--accent); font-size:.76rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:8px;
}
.map-card strong{display:block; font-size:1.02rem; margin-bottom:6px}
.map-card p{margin:0; color:var(--muted); font-size:.93rem}
.connector{height:28px; position:relative; margin:4px 0}
.connector::before{
  content:""; position:absolute; left:16px; right:16px; top:13px; height:2px;
  background:linear-gradient(90deg, rgba(47,128,237,.22), rgba(84,157,247,.3));
}

.metrics{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; padding:18px 0 8px}
.metric{border-top:1px solid var(--line); padding-top:16px}
.metric strong{display:block; font-size:1.05rem; margin-bottom:5px}
.metric span{color:var(--muted); font-size:.93rem}

section{padding:36px 0}
.section-head{display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:24px}
.section-head p{margin:0; color:var(--muted); max-width:680px; font-size:1rem}
.grid-2,.grid-3,.grid-4,.split,.page-grid,.lab-grid,.case-grid{display:grid; gap:18px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.split{grid-template-columns:1.05fr .95fr}
.page-grid{grid-template-columns:repeat(2,1fr)}
.lab-grid{grid-template-columns:1.2fr .8fr}
.case-grid{grid-template-columns:repeat(3,1fr)}

.card,.module{padding:24px}
.card h3,.module h3{margin:0 0 10px; font-size:1.2rem; letter-spacing:-.02em}
.card p,.module p{margin:0; color:var(--muted); font-size:.98rem}
.tag{
  display:inline-flex; align-items:center; min-height:28px; padding:0 10px; border-radius:999px;
  border:1px solid rgba(47,128,237,.18); background:rgba(47,128,237,.08); color:var(--accent);
  font-size:.78rem; margin-bottom:14px;
}
.diagram-card{overflow:hidden; padding:0}
.diagram-card .inner{padding:22px}
.diagram-card img,.diagram-card svg{width:100%; border-top:1px solid var(--line); background:#f8fbff}

.list,.download-list,.contact-box,.timeline,.research-list{display:grid; gap:10px; margin-top:14px}
.list-item,.timeline-item{
  display:flex; gap:10px; color:var(--muted); align-items:start;
}
.list-item::before,.timeline-item::before{
  content:""; width:8px; height:8px; margin-top:.55em; border-radius:50%;
  background:linear-gradient(180deg,var(--accent),var(--accent2)); flex:0 0 auto;
}
.download-link{
  display:block; padding:14px 16px; border:1px solid var(--line); border-radius:16px;
  background:rgba(255,255,255,.72);
}
.download-link:hover{border-color:rgba(47,128,237,.35)}
.download{background:linear-gradient(135deg, rgba(47,128,237,.08), rgba(84,157,247,.06))}
.contact-item{
  border:1px solid var(--line); border-radius:16px; padding:14px 16px; background:rgba(255,255,255,.65);
}
.contact-item strong{display:block; margin-bottom:4px; font-size:.95rem}
.contact-item span,.contact-item a{color:var(--muted); font-size:.94rem}

.arch-map{
  display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:16px;
}
.arch-node{
  min-height:140px;
  border:1px solid var(--line);
  border-radius:22px;
  background:#fff;
  padding:18px;
  position:relative;
  overflow:hidden;
}
.arch-node::after{
  content:"";
  position:absolute;
  inset:auto -20px -20px auto;
  width:90px; height:90px; border-radius:50%;
  background:radial-gradient(circle, rgba(47,128,237,.12), transparent 70%);
}
.arch-node strong{display:block; margin-bottom:8px; font-size:1rem}
.arch-node span{display:block; color:var(--muted); font-size:.92rem}
.arch-links{
  position:relative;
  height:20px;
  margin:10px 0 14px;
}
.arch-links::before{
  content:"";
  position:absolute; inset:9px 20px auto 20px; height:2px;
  background:linear-gradient(90deg, rgba(47,128,237,.1), rgba(47,128,237,.5), rgba(47,128,237,.1));
}

.research-band{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.research-module{
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:rgba(255,255,255,.8);
  padding:20px;
}
.research-module h4{margin:0 0 8px; font-size:1rem}
.research-module p{margin:0; color:var(--muted); font-size:.93rem}

footer{padding:28px 0 42px; color:var(--muted); font-size:.92rem}
.footer-inner{
  display:flex; justify-content:space-between; gap:18px;
  border-top:1px solid rgba(18,32,48,.08); padding-top:18px;
}
.small-note{color:#7a8a9a; font-size:.83rem; margin-top:10px}

@keyframes driftGlow{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(-30px,20px,0) scale(1.06)}}
@keyframes driftGlow2{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(25px,-18px,0) scale(1.04)}}
@keyframes flowA{from{transform:translateX(0) rotate(-12deg)}to{transform:translateX(-120px) rotate(-12deg)}}
@keyframes flowB{from{transform:translateX(0) rotate(8deg)}to{transform:translateX(-150px) rotate(8deg)}}
@media (prefers-reduced-motion: reduce){.hero::before,.hero::after,.photonic-flow::before,.photonic-flow::after{animation:none}}
@media(max-width:980px){
  .hero-wrap,.split,.grid-2,.grid-3,.grid-4,.metrics,.map-row,.page-grid,.lab-grid,.case-grid,.arch-map,.research-band{grid-template-columns:1fr}
  .nav{min-height:auto; padding:16px 0; flex-direction:column; align-items:start}
  .section-head{flex-direction:column; align-items:start}
  .brand img{height:86px}
}
@media(max-width:640px){
  .container{width:min(var(--max),calc(100% - 24px))}
  .hero{padding-top:56px}
  .hero-panel{padding:18px; min-height:auto}
  .card,.module{padding:20px}
  h1{font-size:clamp(2.5rem,12vw,4rem)}
  .brand img{height:72px}
}

.hero-brand-ambient{
  position:absolute;
  right:34%;
  bottom:18%;
  width:min(24vw,360px);
  opacity:.42;
  filter:drop-shadow(0 14px 30px rgba(47,128,237,.18));
  pointer-events:none;
  z-index:0;
}

.page-shell{position:relative;overflow:hidden}
.page-shell::before{
  content:""; position:absolute; right:-120px; top:60px; width:320px; height:320px; border-radius:50%;
  background:radial-gradient(circle, rgba(47,128,237,.12), transparent 70%); filter:blur(12px); pointer-events:none;
}
.table-like{display:grid; gap:10px; margin-top:16px}
.table-row{
  display:grid; grid-template-columns:1.1fr .8fr .6fr; gap:12px; padding:14px 16px;
  border:1px solid var(--line); border-radius:16px; background:rgba(255,255,255,.8);
}
.table-head{font-weight:700; color:var(--text)}


.page-hero .container{max-width:none;}
.page-hero h1{max-width:80vw;}
.page-hero .lead{max-width:80vw;}
.hero > .container, .page-hero > .container{position:relative; z-index:2;}
@media (max-width:980px){
  .hero-wrap{grid-template-columns:1fr;}
  .page-hero h1,.page-hero .lead{max-width:100%;}
}



.home-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:20px;
  align-items:start;
  position:relative;
  z-index:1;
}
.home-hero-title{
  max-width:80vw !important;
  width:80vw;
}
.home-hero-bottom{
  display:grid;
  grid-template-columns:minmax(300px,360px) minmax(0,1fr);
  gap:28px;
  align-items:start;
  margin-top:10px;
}
.home-tech-map{
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:linear-gradient(180deg, rgba(255,255,255,.94), rgba(255,255,255,.78));
  box-shadow:var(--shadow);
  padding:18px;
}
.home-tech-map img{
  width:100%;
  height:auto;
  display:block;
}
.home-side-copy .lead{
  max-width:none !important;
  margin-top:0;
}
.hero-panel{min-height:auto;}
.hero-brand-ambient{
  right:20%;
  bottom:30%;
  width:min(22vw,320px);
  opacity:.28;
}
@media (max-width:980px){
  .home-hero-grid,.home-hero-bottom{grid-template-columns:1fr;}
  .hero-brand-ambient{right:8%; bottom:18%; width:min(42vw,320px);}
}




.page-hero .container{
  position:relative;
}
.page-hero .container > *{
  position:relative;
  z-index:2;
}



/* Vector background word for subpages */
.page-hero{
  position:relative;
  overflow:hidden;
  padding:18px 0 12px;
  background:
    linear-gradient(180deg, rgba(205,216,231,.72) 0%, rgba(229,236,244,.46) 100%);
}
.page-hero::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 18%, rgba(111,166,218,.12), transparent 30%),
    linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.22), rgba(255,255,255,0));
  opacity:.9;
}
.page-hero::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,.18), transparent 18%, transparent 82%, rgba(255,255,255,.10));
  mix-blend-mode:screen;
}

.page-hero .container{
  position:relative;
  z-index:2;
}
.page-hero .eyebrow{
  margin-bottom:12px;
}
.page-hero h1{
  margin-top:0;
}
.page-hero .lead{
  margin-top:16px;
}
@media (max-width:980px){
  
}


/* --- Accent word using logo asset --- */

.page-accent{
  display:block;
  margin:6px auto 32px auto;
  width:min(560px,60%);
  opacity:0.58;
  filter:brightness(.9) saturate(.95);
  pointer-events:none;
  user-select:none;
  position:relative;
  z-index:1;
  transform:translateY(-6px);
}


/* subtle light sweep refinement */
.page-accent::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(
      110deg,
      rgba(255,255,255,0) 20%,
      rgba(255,255,255,.35) 40%,
      rgba(255,255,255,0) 60%
  );
  opacity:.35;
  transform:translateX(-120%);
  animation:metacoreSweep 7s ease-in-out infinite;
  pointer-events:none;
}

@keyframes metacoreSweep{
  0% { transform:translateX(-120%); }
  40% { transform:translateX(120%); }
  100% { transform:translateX(120%); }
}

/* hero layering */
.page-hero .container{
  position:relative;
  z-index:2;
}


.stack-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  margin-top:18px;
}
.stack-layer{
  border:1px solid var(--line);
  border-radius:22px;
  background:rgba(255,255,255,.84);
  padding:20px;
  box-shadow:var(--shadow);
}
.stack-layer .step{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border-radius:999px;
  background:rgba(47,128,237,.10);
  color:var(--accent);
  font-weight:700;
  margin-bottom:12px;
}
.stack-layer h4{
  margin:0 0 8px;
  font-size:1rem;
  letter-spacing:-.02em;
}
.stack-layer p{
  margin:0;
  color:var(--muted);
  font-size:.94rem;
}
@media (max-width:980px){
  .stack-grid{grid-template-columns:1fr;}
}


/* credibility update */
.brand img{
  height:118px !important;
}
.nav-links{
  gap:18px !important;
  font-size:.92rem !important;
}
.footer-note{
  margin-top:8px;
  color:#7a8a9a;
  font-size:.86rem;
}
@media (max-width:980px){
  .brand img{height:88px !important;}
}
@media (max-width:640px){
  .brand img{height:72px !important;}
}

/* navigation refinement used by research institutes */
.nav-links a.utility{
  opacity:.82;
}

.nav-divider{
  width:1px;
  height:18px;
  background:rgba(120,130,150,.35);
  display:inline-block;
  margin:0 6px;
  vertical-align:middle;
}


/* small credibility element */
.credibility-strip{
  margin-top:18px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.credibility-pill{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid rgba(18,32,48,.10);
  background:rgba(255,255,255,.72);
  color:var(--muted);
  font-size:.84rem;
}
