:root{--navy:#0a45f0;--navy2:#2a63ff;--text:#111418;--ink:#1b2430;--muted:#5d6672;--line:#e3e0da;--paper:#ffffff;--warm:#f5f3ef;--teal:#2c7a78;--teal-l:#7fc1bd;--serif:"Newsreader",Georgia,serif;--sans:"Inter",system-ui,-apple-system,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--paper);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}a{color:var(--teal)}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}
h1,h2,h3{font-family:var(--serif);font-weight:400;color:var(--text);line-height:1.15;letter-spacing:-.01em;margin:0 0 .5em}
h1{font-size:clamp(2.4rem,5.2vw,4.1rem);font-weight:300}h2{font-size:clamp(1.8rem,3.2vw,2.6rem);font-weight:300}h3{font-size:1.35rem}
p{margin:0 0 1em}.lead{font-size:1.2rem;color:var(--muted);max-width:44em}
.eyebrow{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);font-weight:600;margin-bottom:1.2em}
.eyebrow.light{color:var(--teal-l)}
section{padding:110px 0}section.alt{background:var(--warm)}section.tight{padding:70px 0}
.btn,.btn-sm{display:inline-block;text-decoration:none;font-weight:500;border-radius:2px;transition:all .25s}
.btn{padding:14px 26px;background:var(--navy);color:#fff;border:1px solid var(--navy);font-size:.95rem}
.btn:hover{background:var(--teal);border-color:var(--teal)}
.btn.light{background:#fff;color:var(--text);border-color:#fff}.btn.light:hover{background:var(--teal-l);border-color:var(--teal-l)}
.btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}.btn.ghost:hover{border-color:#fff}
.btn.line{background:transparent;color:var(--text);border-color:var(--navy)}.btn.line:hover{background:var(--navy);color:#fff}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:2em}
.textlink{color:var(--text);font-weight:500;text-decoration:none;border-bottom:1px solid var(--teal);padding-bottom:2px}.textlink:hover{color:var(--teal)}
/* nav */
.nav{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text)}
.mono{font-family:var(--serif);font-size:.95rem;letter-spacing:.08em;border:1px solid currentColor;padding:4px 7px;line-height:1}
.bn{font-family:var(--serif);font-size:1.15rem}.bn em{font-style:normal;color:var(--muted)}
.nav nav{display:flex;align-items:center;gap:24px}
.nav nav a{color:var(--ink);text-decoration:none;font-size:.88rem;position:relative}
.nav nav a:not(.btn-sm):after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:var(--teal);transition:right .3s}
.nav nav a:hover:after,.nav nav a.on:after{right:0}.nav nav a.on{color:var(--text);font-weight:500}
.btn-sm{padding:9px 16px;background:var(--navy);color:#fff!important;font-size:.85rem}.btn-sm:hover{background:var(--teal)}
.menu{display:none;background:none;border:0;width:40px;height:40px;cursor:pointer;padding:10px}
.menu span{display:block;height:1.5px;background:var(--navy);margin:6px 0;transition:.3s}
/* hero */
.hero{padding:90px 0 100px;background:var(--warm);position:relative;overflow:hidden}
.hero-in{display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:center}
.hero .tagline{font-family:var(--serif);font-style:italic;font-size:1.35rem;color:var(--teal);margin:0 0 1em}
.hero .roles{font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:1.6em}
.portrait{aspect-ratio:4/5;background:linear-gradient(160deg,var(--navy2),var(--navy));position:relative;display:flex;align-items:flex-end;padding:28px;color:#fff;overflow:hidden}
.portrait:before{content:"DFM";position:absolute;top:50%;left:50%;transform:translate(-50%,-60%);font-family:var(--serif);font-size:5.5rem;font-weight:300;letter-spacing:.1em;color:rgba(255,255,255,.12)}
.portrait:after{content:"";position:absolute;inset:16px;border:1px solid rgba(127,193,189,.35)}
.portrait p{position:relative;z-index:1;margin:0;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-l)}
.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-hero{background:var(--navy);color:#cfd6de;padding:110px 0 90px;position:relative;overflow:hidden}
.page-hero h1{color:#fff;max-width:16em}.page-hero .lead{color:#b4bfcb}
.page-hero.img{background-size:cover;background-position:center}
.page-hero.img:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,58,215,.9) 0%,rgba(8,58,215,.6) 55%,rgba(8,58,215,.12) 100%)}
.page-hero .wrap{position:relative}
/* dual */
.dual{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line);border:1px solid var(--line)}
.dual > div{background:#fff;padding:52px 46px}
.dual h3{font-size:1.75rem;font-weight:300}
.dual ul{list-style:none;padding:0;margin:1.2em 0 1.6em}.dual li{padding:9px 0;border-top:1px solid var(--line);font-size:.95rem}
.dual .num{font-family:var(--serif);color:var(--teal);font-size:1rem;margin-bottom:1.2em;display:block}
/* grids & cards */
.grid{display:grid;gap:24px}.grid.two{grid-template-columns:repeat(2,1fr)}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.four{grid-template-columns:repeat(4,1fr)}
.card{background:#fff;border:1px solid var(--line);padding:34px 30px;transition:border-color .3s,transform .3s,box-shadow .3s}
.card:hover{border-color:var(--teal);transform:translateY(-3px);box-shadow:0 14px 30px -18px rgba(8,58,215,.35)}
.alt .card{background:#fff}
.card p{color:var(--muted);font-size:.95rem;margin:0}
.icon{width:40px;height:40px;color:var(--teal);margin-bottom:22px}
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:start}
.split.center{align-items:center}
.figure{aspect-ratio:5/4;overflow:hidden}.figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s}.figure:hover img{transform:scale(1.03)}
.diff{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.diff a{display:block;text-decoration:none;color:inherit;background:var(--navy);color:#fff;position:relative;min-height:380px;overflow:hidden}
.diff a img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.45;transition:opacity .5s,transform 1.2s}
.diff a:hover img{opacity:.6;transform:scale(1.04)}
.diff .in{position:relative;padding:44px;display:flex;flex-direction:column;justify-content:flex-end;height:100%;min-height:380px;background:linear-gradient(0deg,rgba(8,58,215,.95),rgba(8,58,215,.2))}
.diff h3{color:#fff;font-size:1.9rem;font-weight:300}.diff p{color:#c9d2db;font-size:.95rem;max-width:30em}
.diff a.ai{background:#0b2f33}.diff a.ai img{filter:hue-rotate(150deg) saturate(1.3)}.diff a.ai .in{background:linear-gradient(0deg,rgba(8,52,56,.95),rgba(20,110,110,.25))}
.diff span.more{color:var(--teal-l);font-size:.85rem;letter-spacing:.06em}
/* pillars */
.pillar{border-top:1px solid var(--line);padding:0}
.pillar summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:60px 1fr 30px;gap:24px;align-items:center;padding:30px 0}
.pillar summary::-webkit-details-marker{display:none}
.pillar summary .icon{margin:0}.pillar summary h3{margin:0 0 4px}.pillar summary p{margin:0;color:var(--muted);font-size:.95rem}
.pillar summary .plus{width:22px;height:22px;position:relative}
.pillar summary .plus:before,.pillar summary .plus:after{content:"";position:absolute;background:var(--navy);left:0;right:0;top:50%;height:1.5px;transition:transform .3s}
.pillar summary .plus:after{transform:rotate(90deg)}.pillar[open] summary .plus:after{transform:rotate(0)}
.pillar ul{columns:2;column-gap:40px;margin:0 0 34px 84px;padding:0;list-style:none}
.pillar li{break-inside:avoid;padding:7px 0 7px 18px;position:relative;font-size:.95rem}
.pillar li:before{content:"";position:absolute;left:0;top:16px;width:7px;height:1px;background:var(--teal)}
.pillar:last-child{border-bottom:1px solid var(--line)}
.ticks{list-style:none;padding:0;margin:0}.ticks li{padding:14px 0 14px 34px;border-top:1px solid var(--line);position:relative}
.ticks li:before{content:"";position:absolute;left:4px;top:22px;width:12px;height:6px;border-left:1.5px solid var(--teal);border-bottom:1.5px solid var(--teal);transform:rotate(-45deg)}
.note{font-size:.85rem;color:var(--muted);border-left:2px solid var(--teal);padding:4px 0 4px 16px;margin-top:2em}
/* timeline */
.timeline{border-left:1px solid var(--line);padding-left:36px}
.role{position:relative;padding-bottom:40px}.role:before{content:"";position:absolute;left:-41px;top:9px;width:9px;height:9px;border-radius:50%;background:#fff;border:1.5px solid var(--teal)}
.role .when{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal);font-weight:600}
.role h3{margin:.3em 0 .1em}.role .org{color:var(--muted);margin-bottom:.6em;font-size:.95rem}.role p{font-size:.95rem}
.ph{background:#eef3ff;color:#7a5a00;border:1px dashed #d9b85c;padding:1px 7px;font-size:.8rem;border-radius:2px;white-space:nowrap}
/* insights */
.cat{display:block;text-decoration:none;color:inherit;border:1px solid var(--line);padding:30px;background:#fff;transition:.3s;position:relative}
.cat:hover{border-color:var(--teal)}
.cat .n{font-family:var(--serif);color:var(--teal);font-size:1.6rem;font-weight:300}
.cat h3{margin:.5em 0 .4em;font-size:1.25rem}.cat p{color:var(--muted);font-size:.92rem;margin:0}
.cat .soon{display:inline-block;margin-top:1.2em;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.pub{padding:30px 0;border-top:1px solid var(--line)}.pub a{text-decoration:none}.pub .src{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);font-weight:600}
.pub h3{margin:.4em 0;font-size:1.3rem}.pub a:hover h3{color:var(--teal)}.pub p{color:var(--muted);font-size:.95rem}
/* contact */
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}
.chan{display:block;padding:22px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}
.chan small{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.chan span{font-family:var(--serif);font-size:1.3rem;color:var(--text)}.chan:hover span{color:var(--teal)}
form.contact{background:var(--warm);padding:44px}
form.contact label{display:block;font-size:.85rem;font-weight:500;margin-bottom:18px}
form.contact input,form.contact select,form.contact textarea{display:block;width:100%;margin-top:6px;padding:13px 14px;border:1px solid #d6d2ca;background:#fff;font:inherit;font-size:.95rem;border-radius:2px;color:var(--ink)}
form.contact input:focus,form.contact select:focus,form.contact textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(44,122,120,.12)}
form.contact .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
form.contact .consent{display:flex;gap:12px;align-items:flex-start;font-weight:400;color:var(--muted);font-size:.85rem}
form.contact .consent input{width:auto;margin-top:4px}
form.contact button{border:0;cursor:pointer;font:inherit}
.msg{padding:16px 20px;margin-bottom:24px;font-size:.95rem}.msg.ok{background:#e4f1ef;color:#1e5654}.msg.err{background:#fbe9e7;color:#8a2c1f}
/* cta / footer */
.cta{background:var(--navy);padding:90px 0}.cta h2{color:#fff;max-width:22em;font-size:clamp(1.5rem,2.6vw,2.1rem)}
.cta-in{display:grid;grid-template-columns:1.5fr auto;gap:50px;align-items:end}.cta .actions{margin:0}
.foot{background:#08131f;color:#8d99a6;font-size:.88rem;padding:64px 0 30px}
.foot-in{display:grid;grid-template-columns:1.2fr 1fr;gap:50px}.foot .brand{color:#fff;margin-bottom:16px}.foot .bn em{color:#8d99a6}
.foot-links{display:grid;grid-template-columns:1fr 1fr;gap:10px 30px;align-content:start}
.foot a{color:#c9d2db;text-decoration:none}.foot a:hover{color:#fff}
.foot-base{border-top:1px solid #1d2b3a;margin-top:44px;padding-top:24px;font-size:.8rem}
.prose{max-width:46em}.prose h2{font-size:1.6rem;margin-top:1.6em}
/* motion */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s ease}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}*{scroll-behavior:auto}}
/* responsive */
@media (max-width:1060px){.nav nav{gap:16px}.nav nav a{font-size:.82rem}}
@media (max-width:960px){
  .menu{display:block}
  .nav nav{position:absolute;top:74px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:8px 28px 24px;border-bottom:1px solid var(--line);display:none}
  .nav.open nav{display:flex}.nav nav a{padding:14px 0;font-size:1rem;border-bottom:1px solid var(--line)}.nav nav a:after{display:none}
  .nav nav .btn-sm{margin-top:16px;text-align:center;border:0}
  .nav.open .menu span:first-child{transform:translateY(3.75px) rotate(45deg)}.nav.open .menu span:last-child{transform:translateY(-3.75px) rotate(-45deg)}
  .hero-in,.split,.contact-grid,.cta-in,.foot-in{grid-template-columns:1fr;gap:44px}
  .hero .portrait{max-width:340px}
  .grid.three,.grid.four{grid-template-columns:1fr 1fr}
}
@media (max-width:680px){
  body{font-size:16px}section{padding:72px 0}.wrap{padding:0 20px}
  .hero{padding:56px 0 70px}.page-hero{padding:72px 0 60px}
  .dual,.diff,.grid.two,.grid.three,.grid.four{grid-template-columns:1fr}
  .dual > div{padding:36px 26px}.diff .in{padding:30px}
  .pillar summary{grid-template-columns:44px 1fr 22px;gap:16px}.pillar ul{columns:1;margin-left:0}
  form.contact{padding:28px 22px}form.contact .row{grid-template-columns:1fr;gap:0}
  .bn{font-size:1rem}.bn em{display:none}
}
@media print{.nav,.cta,.foot,.no-print{display:none!important}body{font-size:11pt}section{padding:18px 0}}

/* photo hero, logos, investors */
.hero.photo{background:var(--navy);padding:150px 0 140px;min-height:78vh;display:flex;align-items:center}
.hero.photo .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero.photo:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(8,58,215,.88) 0%,rgba(8,58,215,.5) 50%,rgba(8,58,215,.06) 100%)}
.hero.photo .wrap{position:relative;z-index:2;width:100%}
.hero.photo .hero-in{grid-template-columns:minmax(0,46em)}
.hero.photo h1{color:#fff}.hero.photo .roles{color:var(--teal-l)}.hero.photo .tagline{color:#d9ecea}.hero.photo .lead{color:#c9d2db}
.hero.photo .textlink{color:#fff;border-color:var(--teal-l)}
.logos{padding:44px 0;border-bottom:1px solid var(--line)}
.logos-in{display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap}
.logos .eyebrow{margin:0;color:var(--muted)}
.logos ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:30px 52px;flex-wrap:wrap}
.logos img{height:34px;width:auto;opacity:.75}
.investors{background:var(--navy);color:#c9d2db}
.investors h2{color:#fff}.investors .lead{color:#b4bfcb}
.videos{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.videos figure{margin:0}
.videos video{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:#0a1622;border:1px solid rgba(127,193,189,.25);box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.videos figcaption{padding-top:18px;font-size:.95rem;color:#b4bfcb}
.videos figcaption strong{display:block;font-family:var(--serif);font-weight:400;font-size:1.3rem;color:#fff;margin-bottom:4px}
.investors .actions{margin-top:48px}
@media (max-width:900px){.videos{grid-template-columns:1fr}.hero.photo{padding:90px 0 80px;min-height:0}.hero.photo:before{background:rgba(8,58,215,.7)}.logos ul{gap:36px}.logos img{height:26px}}

.logos-in{flex-direction:column;align-items:flex-start;gap:30px}.logos ul{width:100%;justify-content:space-between;gap:28px 36px}
.logos img{height:30px}.logos img.lg-fj{height:40px}.logos img.lg-mq{height:auto;width:140px}.logos img.lg-zola{height:28px}
.pe .card{padding:30px 26px}.pe .card:hover{transform:none}
.pe ul{list-style:none;margin:0 0 18px;padding:0}
.pe li{padding:9px 0;border-top:1px solid var(--line)}.pe li:first-child{border-top:0}
.pe li strong{display:block;font-weight:600;color:var(--text);font-size:.98rem}
.pe li span{display:block;color:var(--muted);font-size:.85rem}
.pe .src{font-size:.78rem;color:var(--teal);text-decoration:none;letter-spacing:.04em}.pe .src:hover{text-decoration:underline}
@media (max-width:900px){.logos ul{justify-content:flex-start}.logos img{height:24px}.logos img.lg-fj{height:32px}.logos img.lg-mq{width:110px}.logos img.lg-zola{height:22px}}
