/* ============================================================
   LehmanSoft — shared site styles
   ============================================================ */
:root{
  --bg:#05050A;
  --surface:#05050A;
  --surface-2:#0B0B12;
  --light:#F4F4F2;
  --accent:#6366F1;
  --accent-soft:#8487F5;
  --text:#FFFFFF;
  --text-2:#E5E7EB;
  --text-3:#9CA3AF;
  --text-4:#6B7280;
  --line:rgba(255,255,255,0.08);
  --line-2:rgba(255,255,255,0.05);
  --u:4.25px;
  --maxw:1240px;
  --ff-display:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Hiragino Sans","Yu Gothic","Noto Sans JP","PingFang TC","Microsoft JhengHei",sans-serif;
  --ff-body:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Hiragino Sans","Yu Gothic","Noto Sans JP","PingFang TC","Microsoft JhengHei",sans-serif;
  --ff-serif:Georgia,"Times New Roman","Hiragino Mincho ProN","Yu Mincho","PingFang TC",serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--ff-body);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
::selection{background:var(--accent);color:#fff;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.eyebrow{
  font-family:var(--ff-body);
  font-size:12.75px;font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:var(--text-4);
}
.eyebrow.accent{color:var(--accent);}
.pill{
  display:inline-flex;align-items:center;gap:8px;
  border-radius:9999px;padding:7px 16px;
  font-size:12px;font-weight:500;letter-spacing:.04em;
  line-height:1;white-space:nowrap;
}
.pill--accent{background:var(--accent);color:#fff;}
.pill--ghost{border:1px solid var(--line);color:var(--text-3);}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  border-radius:9999px;padding:14px 26px;
  font-size:14px;font-weight:500;letter-spacing:.01em;
  line-height:1;cursor:pointer;border:1px solid transparent;
  transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease;
  white-space:nowrap;
}
.btn--primary{background:#fff;color:#000;}
.btn--primary:hover{background:var(--text-2);}
.btn--accent{background:var(--accent);color:#fff;}
.btn--accent:hover{background:var(--accent-soft);}
.btn--ghost{background:transparent;color:#fff;border-color:var(--line);}
.btn--ghost:hover{border-color:rgba(255,255,255,0.35);}
.btn .arr{transition:transform .15s ease;}
.btn:hover .arr{transform:translateX(3px);}

/* ---- corner crop marks ---- */
.framed{position:relative;}
.framed > .cm{position:absolute;width:18px;height:18px;pointer-events:none;z-index:3;}
.framed > .cm::before,.framed > .cm::after{content:"";position:absolute;background:var(--cm-color,rgba(255,255,255,0.4));}
.framed > .cm::before{width:100%;height:1px;top:0;}
.framed > .cm::after{width:1px;height:100%;left:0;}
.cm.tl{top:14px;left:14px;}
.cm.tr{top:14px;right:14px;transform:scaleX(-1);}
.cm.bl{bottom:14px;left:14px;transform:scaleY(-1);}
.cm.br{bottom:14px;right:14px;transform:scale(-1,-1);}

/* ===== NAV ===== */
header{position:fixed;top:0;left:0;right:0;z-index:100;
  transition:background .25s ease,border-color .25s ease,backdrop-filter .25s ease;
  border-bottom:1px solid transparent;}
header.scrolled{background:rgba(5,5,10,0.72);backdrop-filter:blur(14px);border-bottom-color:var(--line-2);}
header.solid{background:rgba(5,5,10,0.82);backdrop-filter:blur(14px);border-bottom-color:var(--line-2);}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px;}
.logo{display:inline-block;width:120px;height:12px;color:currentColor;background-color:currentColor;
  -webkit-mask:url("lehmansoft.svg") left center/contain no-repeat;
          mask:url("lehmansoft.svg") left center/contain no-repeat;
  vertical-align:middle;flex-shrink:0;text-indent:-9999px;overflow:hidden;}
.navlinks{display:flex;align-items:center;gap:34px;}
.navlinks a{font-size:12.75px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);transition:color .15s ease;position:relative;}
.navlinks a:hover{color:#fff;}
.navlinks a.current{color:#fff;}
.navlinks a.current::after{content:"";position:absolute;left:0;right:0;bottom:-26px;height:2px;background:var(--accent);}
.nav-cta{display:flex;align-items:center;gap:14px;}

/* ---- Projects dropdown ---- */
.navlinks .has-dd{position:relative;}
.navlinks .dd-trigger{display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  font-family:var(--ff-body);font-size:12.75px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;
  color:var(--text-3);background:none;border:none;padding:0;transition:color .15s ease;}
.navlinks .has-dd:hover .dd-trigger,.navlinks .has-dd.current .dd-trigger{color:#fff;}
.navlinks .has-dd.current .dd-trigger::after{content:"";position:absolute;left:0;right:18px;bottom:-26px;height:2px;background:var(--accent);}
.dd-trigger .caret,.lang-trigger .caret{transition:transform .2s ease;opacity:.7;}
.navlinks .has-dd:hover .dd-trigger .caret{transform:rotate(180deg);}
.navlinks .has-dd::after{content:"";position:absolute;top:100%;left:-20px;right:-20px;height:20px;}
.dd-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(6px);
  min-width:300px;background:rgba(10,10,16,0.97);backdrop-filter:blur(18px);
  border:1px solid var(--line);border-radius:16px;padding:8px;
  opacity:0;visibility:hidden;transition:opacity .18s ease,transform .18s ease;z-index:120;}
.navlinks .has-dd:hover .dd-menu,.navlinks .has-dd.open .dd-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(14px);}
.dd-menu a{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;border-radius:11px;
  text-transform:none;letter-spacing:0;color:var(--text-2);transition:background .15s ease;}
.dd-menu a:hover{background:rgba(255,255,255,0.05);color:#fff;}
.dd-menu a .di{flex:0 0 38px;width:38px;height:38px;border:1px solid var(--line);border-radius:10px;
  display:grid;place-items:center;color:var(--accent);}
.dd-menu a .dtxt{display:flex;flex-direction:column;gap:3px;}
.dd-menu a .dt{font-family:var(--ff-display);font-size:15px;font-weight:500;letter-spacing:-.01em;color:#fff;}
.dd-menu a .ds{font-size:12px;line-height:1.45;color:var(--text-4);font-weight:300;max-width:30ch;}

/* ---- Language dropdown ---- */
.lang-dd{position:relative;}
.lang-trigger{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;
  border:1px solid var(--line);border-radius:9999px;background:transparent;color:var(--text-2);
  font-family:var(--ff-body);font-size:12px;font-weight:500;letter-spacing:.02em;cursor:pointer;
  transition:border-color .15s ease,color .15s ease;white-space:nowrap;}
.lang-trigger:hover{border-color:rgba(255,255,255,0.3);color:#fff;}
.lang-dd:hover .lang-trigger .caret,.lang-dd.open .lang-trigger .caret{transform:rotate(180deg);}
.lang-dd::after{content:"";position:absolute;top:100%;left:0;right:0;height:14px;}
.lang-menu{position:absolute;top:100%;right:0;transform:translateY(6px);min-width:138px;
  background:rgba(10,10,16,0.97);backdrop-filter:blur(18px);border:1px solid var(--line);
  border-radius:12px;padding:6px;opacity:0;visibility:hidden;
  transition:opacity .18s ease,transform .18s ease;z-index:120;}
.lang-dd:hover .lang-menu,.lang-dd.open .lang-menu{opacity:1;visibility:visible;transform:translateY(10px);}
.lang-menu button{display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:9px 12px;border:none;background:none;border-radius:8px;color:var(--text-3);
  font-family:var(--ff-body);font-size:13px;cursor:pointer;transition:background .15s,color .15s;}
.lang-menu button:hover{background:rgba(255,255,255,0.05);color:#fff;}
.lang-menu button.on{color:#fff;}
.lang-menu button.on::after{content:"\2713";color:var(--accent);font-size:12px;}
.nav-burger{display:none;width:38px;height:38px;border:1px solid var(--line);border-radius:9999px;background:transparent;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:4px;}
.nav-burger span{display:block;width:15px;height:1.5px;background:#fff;transition:transform .2s ease,opacity .2s ease;}
.mobile-nav{display:none;position:fixed;inset:72px 0 0;z-index:99;background:rgba(5,5,10,0.97);backdrop-filter:blur(16px);padding:32px;flex-direction:column;gap:6px;}
.mobile-nav.open{display:flex;}
.mobile-nav a{font-family:var(--ff-display);font-size:30px;font-weight:500;letter-spacing:-.02em;color:var(--text-2);padding:14px 0;border-bottom:1px solid var(--line-2);}
.mobile-nav a:hover{color:#fff;}
@media(max-width:880px){
  .navlinks{display:none;}
  .nav-burger{display:flex;}
}
.mobile-nav a.sub{font-size:22px;color:var(--text-3);padding-left:18px;border-left:2px solid var(--accent);margin-left:2px;}

/* ===== HERO (home) ===== */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;padding:120px 0 96px;overflow:hidden;
  background:
    radial-gradient(72% 56% at 66% 10%,rgba(99,102,241,0.17),transparent 66%),
    radial-gradient(58% 46% at 20% 24%,rgba(99,102,241,0.08),transparent 70%),
    radial-gradient(90% 60% at 80% 86%,rgba(99,102,241,0.10),transparent 72%);}
/* faint dot-grid texture in the upper region to lift the black */
.hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,0.05) 1px,transparent 1.5px);
  background-size:38px 38px;
  -webkit-mask-image:radial-gradient(125% 85% at 76% 4%,#000 0%,transparent 56%);
  mask-image:radial-gradient(125% 85% at 76% 4%,#000 0%,transparent 56%);
  opacity:.65;}
#terrain{position:absolute;inset:0;width:100%;height:100%;z-index:0;}
.hero-fade{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(to bottom,rgba(5,5,10,0.25) 0%,rgba(5,5,10,0) 26%,rgba(5,5,10,0.05) 50%,rgba(5,5,10,0.85) 82%,var(--bg) 97%),
    linear-gradient(to right,rgba(5,5,10,0.5),rgba(5,5,10,0) 62%);}
.hero .wrap{position:relative;z-index:2;width:100%;}
.hero-badges{display:flex;gap:10px;margin-bottom:26px;flex-wrap:wrap;}
.hero h1{font-family:var(--ff-display);font-weight:500;
  font-size:clamp(56px,9vw,128px);line-height:0.98;letter-spacing:-.03em;
  max-width:15ch;text-wrap:balance;}
.hero h1 em{font-style:normal;color:var(--accent);}
.hero p.sub{margin-top:26px;max-width:46ch;font-size:18px;line-height:1.55;color:var(--text-3);font-weight:300;}
.hero-actions{display:flex;gap:14px;margin-top:36px;flex-wrap:wrap;}
.hero-meta{position:absolute;right:32px;bottom:64px;z-index:2;text-align:right;}
.hero-meta .lab{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-4);margin-bottom:4px;}
.hero-meta .val{font-family:var(--ff-display);font-size:13px;color:var(--text-3);}
@media(max-width:880px){.hero-meta{display:none;}}

/* ===== PAGE HERO (inner pages) ===== */
.page-hero{position:relative;min-height:64vh;display:flex;align-items:flex-end;padding:128px 0 56px;overflow:hidden;border-bottom:1px solid var(--line-2);}
.page-hero canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;}
.page-hero .hero-fade{background:
    linear-gradient(to bottom,rgba(5,5,10,0.32) 0%,rgba(5,5,10,0.04) 30%,rgba(5,5,10,0.5) 74%,rgba(5,5,10,0.92) 92%,var(--bg) 100%),
    linear-gradient(to right,rgba(5,5,10,0.5),rgba(5,5,10,0) 70%);}
.page-hero .wrap{position:relative;z-index:2;width:100%;}
.page-hero h1{font-family:var(--ff-display);font-weight:500;font-size:clamp(40px,6vw,76px);line-height:1.0;letter-spacing:-.03em;margin-top:18px;max-width:18ch;text-wrap:balance;}
.page-hero h1 em{font-style:normal;color:var(--accent);}
.page-hero .lede{margin-top:22px;max-width:54ch;font-size:18px;line-height:1.55;color:var(--text-3);font-weight:300;}

/* ===== SECTION SHELL ===== */
section.block{padding:120px 0;position:relative;}
section.block.tight{padding:96px 0;}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:56px;}
.sec-head .left{max-width:62ch;}
.sec-head h2{font-family:var(--ff-display);font-weight:500;font-size:clamp(30px,3.6vw,46px);line-height:1.03;letter-spacing:-.025em;margin-top:18px;text-wrap:balance;}
.sec-head p{margin-top:18px;font-size:16px;line-height:1.6;color:var(--text-3);font-weight:300;max-width:52ch;}
.hairline{height:1px;background:var(--line-2);width:100%;}

/* ===== TWO AREAS ===== */
.areas{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-2);border:1px solid var(--line-2);}
.area{position:relative;background:var(--bg);padding:44px;min-height:380px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;transition:background .2s ease;}
.area:hover{background:var(--surface-2);}
.area .area-tag{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-4);}
.area h3{font-family:var(--ff-display);font-weight:500;font-size:32px;letter-spacing:-.02em;margin-top:14px;}
.area p{margin-top:14px;font-size:15px;line-height:1.6;color:var(--text-3);font-weight:300;max-width:38ch;}
.area .go{margin-top:28px;display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:500;color:#fff;letter-spacing:.02em;}
.area .go .arr{transition:transform .15s ease;color:var(--accent);}
.area:hover .go .arr{transform:translateX(4px);}
.area .glyph{position:absolute;right:30px;top:30px;width:46px;height:46px;border:1px solid var(--line);border-radius:9999px;display:grid;place-items:center;color:var(--text-3);}
.area-stripes{position:absolute;inset:0;opacity:.5;pointer-events:none;
  background:repeating-linear-gradient(90deg,rgba(99,102,241,0.06) 0 1px,transparent 1px 8px);
  mask-image:linear-gradient(to bottom,#000 0,transparent 42%);}
@media(max-width:760px){.areas{grid-template-columns:1fr;}}

/* ===== ENGINES (compact grid) ===== */
.engines{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);}
.engine{background:var(--bg);padding:34px;min-height:300px;display:flex;flex-direction:column;transition:background .2s ease;}
.engine:hover{background:var(--surface-2);}
.engine .num{font-family:var(--ff-display);font-size:13px;color:var(--accent);letter-spacing:.05em;}
.engine .icon{width:40px;height:40px;margin:20px 0 auto;color:var(--accent);}
.engine h4{font-family:var(--ff-display);font-weight:500;font-size:19px;letter-spacing:-.01em;margin-bottom:12px;line-height:1.12;}
.engine p{font-size:13.5px;line-height:1.55;color:var(--text-4);font-weight:300;}
@media(max-width:980px){.engines{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.engines{grid-template-columns:1fr;}}

/* ===== STATS ===== */
.stats-band{position:relative;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);}
.stats{display:grid;grid-template-columns:repeat(3,1fr);}
.stat{padding:64px 40px;border-left:1px solid var(--line-2);position:relative;}
.stat:first-child{border-left:none;}
.stat .big{font-family:var(--ff-display);font-weight:500;font-size:clamp(48px,6vw,84px);line-height:1;letter-spacing:-.03em;color:#fff;}
.stat .big .pre{color:var(--accent);}
.stat .lab{margin-top:14px;font-size:14px;font-weight:500;color:var(--text-2);}
.stat .desc{margin-top:6px;font-size:13px;color:var(--text-4);font-weight:300;line-height:1.5;max-width:30ch;}
@media(max-width:760px){.stats{grid-template-columns:1fr;}.stat{border-left:none;border-top:1px solid var(--line-2);}.stat:first-child{border-top:none;}}

/* ===== EDITORIAL / LIGHT CARD ===== */
.editorial{display:grid;grid-template-columns:1.05fr 0.95fr;gap:1px;background:var(--line-2);border:1px solid var(--line-2);}
.ed-light{background:var(--light);color:#0A0A0F;padding:56px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;min-height:440px;}
.ed-light .stripes{position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(135deg,rgba(0,0,0,0.035) 0 1px,transparent 1px 9px);}
.ed-light .top{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1;}
.ed-light .top .logo{color:#0A0A0F;}
.ed-light h3{position:relative;z-index:1;font-family:var(--ff-serif);font-weight:400;font-size:clamp(34px,4vw,52px);line-height:1.02;letter-spacing:-.01em;}
.ed-light p{position:relative;z-index:1;font-size:15px;line-height:1.6;color:#3A3A42;max-width:36ch;font-weight:300;}
.ed-tags{display:flex;gap:8px;position:relative;z-index:1;flex-wrap:wrap;}
.tag{border-radius:9999px;padding:9px 18px;font-size:13px;font-weight:500;}
.tag--accent{background:var(--accent);color:#fff;}
.tag--mute{background:rgba(0,0,0,0.06);color:#0A0A0F;}
.ed-accent{background:var(--accent);color:#fff;padding:56px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:18px;min-height:440px;}
.ed-accent .ring{position:absolute;width:520px;height:520px;border:1px solid rgba(255,255,255,0.22);border-radius:9999px;right:-180px;top:50%;transform:translateY(-50%);}
.ed-accent .ring.r2{width:360px;height:360px;border-color:rgba(255,255,255,0.16);}
.ed-accent .kw{position:relative;z-index:1;font-family:var(--ff-display);font-size:clamp(22px,2.4vw,30px);letter-spacing:-.01em;color:rgba(255,255,255,0.62);transition:color .15s ease;}
.ed-accent .kw.on{color:#fff;font-weight:600;}
@media(max-width:820px){.editorial{grid-template-columns:1fr;}}

/* ===== PARTNERS ===== */
.partners{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);}
.plogo{background:var(--bg);height:108px;display:grid;place-items:center;color:var(--text-4);font-family:var(--ff-display);font-size:14px;letter-spacing:.02em;transition:color .2s ease,background .2s ease;}
.plogo:hover{color:var(--text-2);background:var(--surface-2);}
.ph-note{font-size:11px;letter-spacing:.04em;color:var(--text-4);opacity:.6;}
@media(max-width:760px){.partners{grid-template-columns:repeat(2,1fr);}}

/* ===== FOOTER CTA ===== */
.footcta{padding:150px 0;text-align:center;position:relative;}
.footcta h2{font-family:var(--ff-display);font-weight:500;font-size:clamp(40px,6vw,84px);line-height:1;letter-spacing:-.03em;text-wrap:balance;}
.footcta h2 em{font-style:normal;color:var(--accent);}
.footcta .actions{margin-top:40px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

/* ===== FOOTER ===== */
footer.site{border-top:1px solid var(--line-2);padding:64px 0 40px;}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;}
.foot-grid .tag{background:none;padding:0;color:var(--text-3);font-size:14px;font-weight:300;margin-top:16px;max-width:30ch;line-height:1.5;}
.foot-col h5{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-4);margin-bottom:18px;}
.foot-col a,.foot-col p{display:block;font-size:13.5px;color:var(--text-3);margin-bottom:11px;font-weight:300;transition:color .15s ease;}
.foot-col a:hover{color:#fff;}
.foot-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:56px;padding-top:28px;border-top:1px solid var(--line-2);}
.foot-bottom p{font-size:12.5px;color:var(--text-4);}
.foot-social{display:flex;gap:10px;}
.foot-social a{width:34px;height:34px;border:1px solid var(--line);border-radius:9999px;display:grid;place-items:center;color:var(--text-3);transition:color .15s,border-color .15s;}
.foot-social a:hover{color:#fff;border-color:rgba(255,255,255,0.35);}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr 1fr;}.foot-bottom{flex-direction:column;gap:18px;align-items:flex-start;}}

/* ============================================================
   INNOVATION page
   ============================================================ */
/* AI Core architecture diagram */
.core-diagram{border:1px solid var(--line-2);background:
   linear-gradient(rgba(99,102,241,0.015),rgba(99,102,241,0.015)),
   radial-gradient(circle at 50% 35%,rgba(99,102,241,0.10),transparent 60%);
  padding:64px 40px;position:relative;overflow:hidden;}
.core-diagram .grid-bg{position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(var(--line-2) 1px,transparent 1px),linear-gradient(90deg,var(--line-2) 1px,transparent 1px);
  background-size:44px 44px;mask-image:radial-gradient(circle at 50% 40%,#000,transparent 78%);}
.core-stack{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:26px;}
.core-node{border:1px solid var(--accent);background:rgba(99,102,241,0.10);border-radius:14px;padding:20px 34px;text-align:center;min-width:280px;}
.core-node .t{font-family:var(--ff-display);font-weight:500;font-size:20px;letter-spacing:-.01em;}
.core-node .s{font-size:12.5px;color:var(--text-3);margin-top:4px;font-weight:300;}
.core-connector{width:1px;height:26px;background:linear-gradient(var(--accent),transparent);}
.core-engines-row{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;width:100%;}
.core-eng{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;padding:18px 16px;text-align:center;transition:border-color .2s ease,transform .2s ease;}
.core-eng:hover{border-color:var(--accent);transform:translateY(-3px);}
.core-eng .ic{width:26px;height:26px;margin:0 auto 10px;color:var(--accent);}
.core-eng .t{font-family:var(--ff-display);font-size:14px;font-weight:500;}
.core-deploy{position:relative;z-index:1;margin-top:6px;display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}
.deploy-chip{border:1px dashed var(--line);border-radius:9999px;padding:8px 16px;font-size:12px;color:var(--text-3);}
@media(max-width:720px){.core-engines-row{grid-template-columns:1fr 1fr;}}

/* engine detail blocks */
.eng-detail{display:grid;grid-template-columns:0.9fr 1.1fr;gap:1px;background:var(--line-2);border:1px solid var(--line-2);}
.eng-detail+.eng-detail{border-top:none;}
.eng-side{background:var(--surface-2);padding:48px;display:flex;flex-direction:column;justify-content:space-between;min-height:300px;position:relative;overflow:hidden;}
.eng-side .num{font-family:var(--ff-display);font-size:13px;color:var(--accent);letter-spacing:.06em;}
.eng-side .ic{width:52px;height:52px;color:var(--accent);margin-top:auto;}
.eng-side h3{font-family:var(--ff-display);font-weight:500;font-size:28px;letter-spacing:-.02em;margin-top:16px;}
.eng-body{background:var(--bg);padding:48px;display:flex;flex-direction:column;justify-content:center;gap:20px;}
.eng-body p{font-size:16px;line-height:1.65;color:var(--text-2);font-weight:300;}
.eng-body .algos{display:flex;gap:8px;flex-wrap:wrap;}
.algo-chip{border:1px solid var(--line);border-radius:9999px;padding:7px 15px;font-size:12px;color:var(--text-3);}
@media(max-width:760px){.eng-detail{grid-template-columns:1fr;}.eng-side{min-height:auto;}}

/* two-up generic */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-2);border:1px solid var(--line-2);}
.duo>div{background:var(--bg);padding:44px;}
.duo h4{font-family:var(--ff-display);font-weight:500;font-size:20px;letter-spacing:-.01em;margin-bottom:18px;}
@media(max-width:760px){.duo{grid-template-columns:1fr;}}

/* spec list */
.spec{list-style:none;display:flex;flex-direction:column;}
.spec li{display:flex;gap:18px;padding:18px 0;border-top:1px solid var(--line-2);font-size:15px;line-height:1.55;color:var(--text-3);font-weight:300;}
.spec li:first-child{border-top:none;}
.spec li .k{flex:0 0 38%;color:#fff;font-weight:500;font-size:14px;}
.spec li .v{flex:1;}

/* method cards */
.methods{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);}
.method{background:var(--bg);padding:34px;min-height:220px;display:flex;flex-direction:column;}
.method .n{font-family:var(--ff-display);font-size:13px;color:var(--accent);}
.method h4{font-family:var(--ff-display);font-weight:500;font-size:18px;margin:16px 0 12px;letter-spacing:-.01em;}
.method p{font-size:13.5px;line-height:1.55;color:var(--text-4);font-weight:300;}
@media(max-width:820px){.methods{grid-template-columns:1fr;}}

/* ============================================================
   PROJECTS page
   ============================================================ */
.filters{display:flex;gap:10px;margin-bottom:48px;flex-wrap:wrap;}
.filter{border:1px solid var(--line);border-radius:9999px;padding:10px 20px;font-size:13px;font-weight:500;color:var(--text-3);background:transparent;cursor:pointer;transition:all .15s ease;}
.filter:hover{color:#fff;border-color:rgba(255,255,255,0.3);}
.filter.on{background:var(--accent);border-color:var(--accent);color:#fff;}

.cat-label{display:flex;align-items:center;gap:16px;margin:0 0 28px;}
.cat-label .ic{width:34px;height:34px;border:1px solid var(--line);border-radius:9999px;display:grid;place-items:center;color:var(--accent);}
.cat-label h3{font-family:var(--ff-display);font-weight:500;font-size:24px;letter-spacing:-.02em;}
.cat-label .count{font-size:12px;color:var(--text-4);letter-spacing:.1em;}

.cases{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line-2);border:1px solid var(--line-2);margin-bottom:64px;}
.case{background:var(--bg);display:grid;grid-template-columns:0.85fr 1.15fr;gap:0;transition:background .2s ease;}
.case:hover{background:var(--surface-2);}
.case .case-media{position:relative;min-height:320px;border-right:1px solid var(--line-2);overflow:hidden;background:
   linear-gradient(135deg,rgba(99,102,241,0.10),rgba(99,102,241,0.02));}
.case .case-media image-slot{position:absolute;inset:0;width:100%;height:100%;display:block;}
.case .media-overlay{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:24px 28px;pointer-events:none;
  background:linear-gradient(to top,rgba(5,5,10,0.88),rgba(5,5,10,0.45) 55%,transparent);}
.case .pname{font-family:var(--ff-display);font-weight:600;font-size:24px;letter-spacing:-.02em;position:relative;z-index:1;color:#fff;}
.case .pmeta{position:relative;z-index:1;margin-top:5px;font-size:12.5px;color:var(--text-3);letter-spacing:.04em;line-height:1.5;}
.case .case-body{padding:36px 40px;display:flex;flex-direction:column;gap:18px;}
.case .powered{display:flex;gap:8px;flex-wrap:wrap;}
.case .powered .algo-chip{font-size:11.5px;}
.case .row{display:flex;flex-direction:column;gap:5px;}
.case .row .lab{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-4);}
.case .row .txt{font-size:14.5px;line-height:1.6;color:var(--text-2);font-weight:300;}
.case .row .txt.outcome{color:var(--accent-soft);font-weight:400;}
@media(max-width:820px){.case{grid-template-columns:1fr;}.case .case-media{border-right:none;border-bottom:1px solid var(--line-2);min-height:200px;}}

/* ============================================================
   EDITORIAL BLOCKS — manifesto / proof / numbered-wire
   reusable layouts inspired by the Mentorfy reference cards.
   ============================================================ */

/* MANIFESTO — full-width bold serif uppercase statement.
   Variants: .dark (black), .light (cream), .indigo (accent). */
.manifesto{position:relative;padding:120px 56px;overflow:hidden;text-align:center;border:1px solid var(--line-2);}
.manifesto.dark{background:var(--bg);color:#fff;}
.manifesto.light{background:var(--light);color:#0A0A0F;}
.manifesto.indigo{background:var(--accent);color:#fff;border-color:transparent;}
.manifesto .stripes{position:absolute;inset:0;pointer-events:none;}
.manifesto.dark .stripes{background:repeating-linear-gradient(90deg,rgba(255,255,255,0.022) 0 1px,transparent 1px 14px);
  mask-image:linear-gradient(to right,#000,transparent 70%,#000);}
.manifesto.light .stripes{background:repeating-linear-gradient(135deg,rgba(0,0,0,0.04) 0 1px,transparent 1px 9px);}
.manifesto.indigo .stripes{background:radial-gradient(50% 70% at 50% 50%,rgba(255,255,255,0.10),transparent 65%);}
.manifesto .wm{position:absolute;top:32px;left:32px;width:108px;height:11px;background-color:currentColor;
  -webkit-mask:url("lehmansoft.svg") left center/contain no-repeat;
          mask:url("lehmansoft.svg") left center/contain no-repeat;
  text-indent:-9999px;overflow:hidden;z-index:2;}
.manifesto h2{font-family:var(--ff-serif);font-weight:500;font-size:clamp(40px,5.4vw,82px);line-height:1.06;letter-spacing:-.005em;text-transform:uppercase;text-wrap:balance;position:relative;z-index:1;max-width:20ch;margin:0 auto;}
.manifesto h2 em{font-style:italic;font-weight:400;color:var(--accent);}
.manifesto.indigo h2 em{color:#fff;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em;}
.manifesto p{margin:30px auto 0;font-size:16.5px;line-height:1.65;font-weight:300;max-width:54ch;position:relative;z-index:1;}
.manifesto.dark p{color:var(--text-3);}
.manifesto.light p{color:#3A3A42;}
.manifesto.indigo p{color:rgba(255,255,255,0.92);}

/* SOCIAL PROOF — avatars + stars + serif headline + uppercase tracking body */
.proof{position:relative;padding:88px 56px;background:var(--light);color:#0A0A0F;overflow:hidden;text-align:center;border:1px solid var(--line-2);}
.proof .stripes{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(135deg,rgba(0,0,0,0.035) 0 1px,transparent 1px 9px);}
.proof .avatars{position:relative;z-index:1;display:inline-flex;}
.proof .avatars .av{width:46px;height:46px;border-radius:9999px;border:3px solid var(--light);background:linear-gradient(135deg,#3A3A42,#0A0A0F);background-size:cover;background-position:center;}
.proof .avatars .av+.av{margin-left:-12px;}
.proof .stars{position:relative;z-index:1;display:flex;justify-content:center;gap:7px;margin-top:16px;color:var(--accent);}
.proof h3{position:relative;z-index:1;margin-top:18px;font-family:var(--ff-serif);font-weight:500;font-size:clamp(28px,3.4vw,42px);line-height:1.06;letter-spacing:-.005em;text-wrap:balance;}
.proof p{position:relative;z-index:1;margin:18px auto 0;max-width:50ch;font-size:12.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#3A3A42;line-height:1.7;}

/* NUMBERED-WIRE — black card w/ subtle topographic wireframe inset on top half */
.numbered-wire{position:relative;background:var(--bg);padding:42px 36px;min-height:380px;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--line-2);}
.numbered-wire .wire-bg{position:absolute;top:0;left:0;right:0;height:62%;pointer-events:none;
  background:
    radial-gradient(120% 110% at 50% 100%,rgba(99,102,241,0.07),transparent 60%),
    repeating-radial-gradient(ellipse 90% 120% at 50% 130%,rgba(255,255,255,0.0) 0 9px,rgba(255,255,255,0.05) 9px 10px),
    repeating-linear-gradient(90deg,rgba(255,255,255,0.03) 0 1px,transparent 1px 10px);
  mask-image:linear-gradient(to bottom,#000,transparent 90%);}
.numbered-wire .num-badge{position:relative;z-index:1;align-self:center;width:48px;height:48px;border:1px solid var(--line);border-radius:9999px;display:grid;place-items:center;font-family:var(--ff-display);font-size:13.5px;font-weight:500;color:#fff;background:rgba(5,5,10,0.7);margin-top:auto;margin-bottom:22px;}
.numbered-wire h4{position:relative;z-index:1;font-family:var(--ff-serif);font-weight:500;font-size:28px;letter-spacing:-.01em;line-height:1.06;}
.numbered-wire p{position:relative;z-index:1;margin-top:14px;font-size:14.5px;line-height:1.6;color:var(--text-3);font-weight:300;max-width:38ch;}

/* TRIPTYCH — three editorial blocks side-by-side */
.triptych{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);}
.triptych > *{border:none !important;}
@media(max-width:980px){.triptych{grid-template-columns:1fr;}}

/* ============================================================
   SECTOR PAGE (projects-pet, projects-energy)
   ============================================================ */
.sector-intro{max-width:62ch;margin-bottom:64px;}
.sector-intro .lede{margin-top:18px;font-size:17px;line-height:1.65;color:var(--text-2);font-weight:300;}
.sector-pillars{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);}
.sector-pillars .pillar{background:var(--bg);padding:28px 30px;display:flex;flex-direction:column;gap:8px;transition:background .2s ease;}
.sector-pillars .pillar:hover{background:var(--surface-2);}
.sector-pillars .pillar .k{font-family:var(--ff-display);font-weight:500;font-size:16px;letter-spacing:-.01em;color:#fff;}
.sector-pillars .pillar .v{font-size:13.5px;line-height:1.55;color:var(--text-3);font-weight:300;}
@media(max-width:760px){.sector-pillars{grid-template-columns:1fr;}}

.impact-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:14px 36px;margin-top:8px;}
.impact-list li{position:relative;padding-left:22px;font-size:14.5px;line-height:1.6;color:var(--text-2);font-weight:300;}
.impact-list li::before{content:"";position:absolute;left:0;top:11px;width:11px;height:1px;background:var(--accent);}
@media(max-width:760px){.impact-list{grid-template-columns:1fr;}}

.project-block{padding:96px 0;border-top:1px solid var(--line-2);}
.project-block:first-of-type{padding-top:88px;border-top:none;}
.project-block .ph-eyebrow{font-family:var(--ff-body);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);}
.project-block h3{font-family:var(--ff-display);font-weight:500;font-size:clamp(28px,3.4vw,40px);line-height:1.03;letter-spacing:-.02em;margin-top:14px;text-wrap:balance;}
.project-block .ph-sub{margin-top:8px;font-family:var(--ff-display);font-size:18px;color:var(--text-3);font-weight:400;letter-spacing:-.005em;}

/* vertical hero image + intro — consistent container, image crops via cover */
.project-hero{margin-top:32px;}
.project-hero .hero-img{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:linear-gradient(135deg,rgba(99,102,241,0.10),rgba(99,102,241,0.02));border:1px solid var(--line-2);}
.project-hero .hero-img img,.project-hero .hero-img image-slot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;}
.project-hero .hero-img .img-tag{position:absolute;left:16px;top:16px;z-index:2;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#fff;background:rgba(5,5,10,0.55);padding:6px 12px;border-radius:9999px;backdrop-filter:blur(6px);pointer-events:none;}
.project-hero .intro{margin-top:32px;max-width:72ch;}
.project-hero .intro p{font-size:16.5px;line-height:1.7;color:var(--text-2);font-weight:300;}

/* legacy two-column row (no longer used, kept for back-compat) */
.project-row{display:grid;grid-template-columns:1.05fr 0.95fr;gap:36px;align-items:start;margin-top:36px;margin-bottom:44px;}
.project-row .intro p{font-size:15.5px;line-height:1.7;color:var(--text-2);font-weight:300;}
.project-row .slot-wrap{position:relative;aspect-ratio:5/4;background:linear-gradient(135deg,rgba(99,102,241,0.10),rgba(99,102,241,0.02));border:1px solid var(--line-2);overflow:hidden;}
.project-row .slot-wrap image-slot{position:absolute;inset:0;width:100%;height:100%;display:block;}
.project-row .slot-tag{position:absolute;left:14px;top:14px;z-index:2;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-4);pointer-events:none;}
@media(max-width:820px){.project-row{grid-template-columns:1fr;}}

.cat-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);margin-top:48px;}
.cat-groups.two{grid-template-columns:repeat(2,1fr);}
.cat-group{background:var(--bg);padding:26px 26px 22px;}
.cat-group h5{font-family:var(--ff-display);font-weight:500;font-size:15px;letter-spacing:-.005em;color:#fff;margin-bottom:14px;}
.cat-group ul{list-style:none;display:flex;flex-direction:column;}
.cat-group li{position:relative;padding:13px 0 13px 18px;border-top:1px solid var(--line-2);font-size:13.5px;line-height:1.55;color:var(--text-3);font-weight:300;}
.cat-group li:first-child{border-top:none;padding-top:4px;}
.cat-group li::before{content:"";position:absolute;left:0;top:22px;width:9px;height:1px;background:var(--accent);}
.cat-group li:first-child::before{top:13px;}
.cat-group li b{display:block;color:#fff;font-weight:500;font-size:13.5px;margin-bottom:3px;letter-spacing:-.005em;}
@media(max-width:900px){.cat-groups,.cat-groups.two{grid-template-columns:1fr;}}

/* ============================================================
   ABOUT page
   ============================================================ */
.mv{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-2);border:1px solid var(--line-2);}
.mv>div{padding:52px;min-height:300px;display:flex;flex-direction:column;justify-content:center;gap:18px;}
.mv .mv-mission{background:var(--bg);}
.mv .mv-vision{background:var(--accent);color:#fff;position:relative;overflow:hidden;}
.mv .mv-vision .ring{position:absolute;width:420px;height:420px;border:1px solid rgba(255,255,255,0.18);border-radius:9999px;right:-160px;bottom:-160px;}
.mv h3{font-family:var(--ff-display);font-weight:500;font-size:26px;letter-spacing:-.02em;position:relative;z-index:1;}
.mv p{font-size:16px;line-height:1.65;font-weight:300;position:relative;z-index:1;}
.mv .mv-mission p{color:var(--text-2);}
.mv .mv-vision p{color:rgba(255,255,255,0.92);}
@media(max-width:760px){.mv{grid-template-columns:1fr;}}

.philos{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);}
.philo{background:var(--bg);padding:32px;min-height:220px;display:flex;flex-direction:column;}
.philo .ic{width:34px;height:34px;color:var(--accent);margin-bottom:auto;}
.philo h4{font-family:var(--ff-display);font-weight:500;font-size:17px;margin:24px 0 10px;letter-spacing:-.01em;}
.philo p{font-size:13px;line-height:1.55;color:var(--text-4);font-weight:300;}
@media(max-width:900px){.philos{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.philos{grid-template-columns:1fr;}}

/* timeline */
.timeline{border-left:1px solid var(--line);margin-left:6px;display:flex;flex-direction:column;gap:36px;padding-left:34px;}
.tl-item{position:relative;}
.tl-item::before{content:"";position:absolute;left:-40px;top:4px;width:10px;height:10px;border-radius:9999px;background:var(--accent);box-shadow:0 0 0 4px rgba(99,102,241,0.18);}
.tl-item .yr{font-family:var(--ff-display);font-size:14px;color:var(--accent);letter-spacing:.04em;}
.tl-item h4{font-family:var(--ff-display);font-weight:500;font-size:19px;margin:6px 0 6px;letter-spacing:-.01em;}
.tl-item p{font-size:14px;line-height:1.55;color:var(--text-3);font-weight:300;max-width:48ch;}

/* leadership placeholder */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);}
.member{background:var(--bg);padding:32px;display:flex;flex-direction:column;gap:4px;min-height:260px;}
.member .avatar{width:100%;aspect-ratio:1;background:
   linear-gradient(135deg,rgba(99,102,241,0.18),rgba(99,102,241,0.03));border:1px solid var(--line-2);border-radius:12px;margin-bottom:20px;display:grid;place-items:center;color:var(--text-4);font-size:12px;letter-spacing:.1em;}
.member h4{font-family:var(--ff-display);font-weight:500;font-size:18px;letter-spacing:-.01em;}
.member .role{font-size:12.5px;color:var(--accent);letter-spacing:.04em;margin-bottom:8px;}
.member p{font-size:13px;line-height:1.55;color:var(--text-4);font-weight:300;}
@media(max-width:820px){.team{grid-template-columns:1fr;}}

/* ============================================================
   CONTACT page
   ============================================================ */
.contact-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:1px;background:var(--line-2);border:1px solid var(--line-2);}
.contact-form{background:var(--bg);padding:48px;}
.contact-aside{background:var(--surface-2);padding:48px;display:flex;flex-direction:column;gap:34px;}
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:22px;}
.field label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-4);}
.field label .req{color:var(--accent);}
.field input,.field select,.field textarea{
  background:var(--surface-2);border:1px solid var(--line);border-radius:10px;
  padding:13px 15px;color:#fff;font-family:var(--ff-body);font-size:14.5px;
  transition:border-color .15s ease,background .15s ease;width:100%;}
.field input::placeholder,.field textarea::placeholder{color:var(--text-4);}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);background:#0E0E16;}
.field textarea{resize:vertical;min-height:120px;}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;padding-right:42px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-note{font-size:12.5px;color:var(--text-4);margin-top:6px;line-height:1.5;}
.form-success{display:none;border:1px solid var(--accent);background:rgba(99,102,241,0.08);border-radius:12px;padding:18px 20px;margin-top:18px;color:var(--accent-soft);font-size:14px;}
.form-success.show{display:block;}
.office{display:flex;flex-direction:column;gap:6px;}
.office .oh{font-family:var(--ff-display);font-weight:500;font-size:16px;display:flex;align-items:center;gap:10px;}
.office .oh .flag{font-size:11px;color:var(--accent);border:1px solid var(--line);border-radius:9999px;padding:3px 9px;letter-spacing:.08em;}
.office address{font-style:normal;font-size:13.5px;line-height:1.6;color:var(--text-3);font-weight:300;}
.contact-direct{display:flex;flex-direction:column;gap:10px;}
.contact-direct a{font-size:14px;color:var(--text-2);display:flex;align-items:center;gap:10px;}
.contact-direct a:hover{color:#fff;}
.contact-direct a .ic{width:16px;height:16px;color:var(--accent);}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr;}.field-row{grid-template-columns:1fr;}}

/* reveal — opacity stays 1 at all times so content is NEVER invisible
   (throttled tabs freeze transitions at their start value). The entrance
   is a transform-only rise that plays when JS adds .in and motion is allowed. */
.reveal{opacity:1;transform:none;}
@media(prefers-reduced-motion:no-preference){
  .reveal.pre{transform:translateY(20px);}
  .reveal.in{transform:none;transition:transform .7s cubic-bezier(.4,0,.2,1);}
}
