/* Atomic Dynamics website prototype. Brand Kit v1.0: Ink + Paper base, one Electron Blue accent, Geist / Geist Mono.
   Layout: Paper pages with Ink bands; the periodic-table tile (from the logo) is the unit of every card, marker and diagram. */
:root{
  --ink:#0A0B0D; --paper:#F2F2EE; --stone:#F4F4F1; --white:#FFFFFF; --blue:#4C6FFF;
  --ink-2:#16181C; --ink-line:#26292F; --ink-muted:#9A9DA6;
  --muted:#5B5E66; --line:#D9D9D2; --line-soft:#E4E4DE;
  --sans:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --gut:max(20px,env(safe-area-inset-left,0px));
  --gut-r:max(20px,env(safe-area-inset-right,0px));
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-weight:600;letter-spacing:-0.025em;margin:0;text-wrap:balance}
p{margin:0}
.wrap{max-width:1200px;margin:0 auto;padding-left:var(--gut);padding-right:var(--gut-r)}
.mono{font-family:var(--mono)}
.eyebrow{font-family:var(--mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.dark .eyebrow{color:var(--ink-muted)}
.lede{font-size:1.2rem;color:var(--muted);max-width:60ch}
.dark .lede{color:var(--ink-muted)}
.h-xl{font-size:clamp(2.4rem,6vw,4.6rem);line-height:1.02;letter-spacing:-0.035em}
.h-l{font-size:clamp(1.9rem,4vw,3rem);line-height:1.08;letter-spacing:-0.03em}
.h-m{font-size:clamp(1.4rem,2.6vw,1.9rem);line-height:1.15}
.dark{background:var(--ink);color:var(--paper)}
.band{padding-block:96px}
.band.tight{padding-block:64px}
.band+.band:not(.dark):not(.white){border-top:1px solid var(--line)}
.white{background:var(--white)}
@media (max-width:720px){.band{padding-block:64px}.band.tight{padding-block:48px}}
.stack{display:grid;gap:20px}
.head{display:grid;gap:14px;margin-bottom:48px;max-width:760px}

/* skip + focus */
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--paper);padding:8px 12px;z-index:100}
.skip:focus{left:8px}

/* announce bar */
.announce{background:var(--blue);color:#fff;font-family:var(--mono);font-size:.76rem;letter-spacing:.05em;text-transform:uppercase}
.announce .wrap{display:flex;gap:12px;align-items:center;justify-content:center;padding-block:9px;text-align:center;flex-wrap:wrap}
.announce a{text-decoration:none;border-bottom:1px solid rgba(255,255,255,.5)}

/* header */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--paper)}
.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(242,242,238,.92);backdrop-filter:saturate(1.2) blur(10px);-webkit-backdrop-filter:saturate(1.2) blur(10px);border-bottom:1px solid var(--line)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:68px}
.logo img{height:30px;width:auto}
.nav{display:flex;gap:4px;align-items:center}
.nav a{font-family:var(--mono);font-size:.76rem;letter-spacing:.04em;text-decoration:none;padding:8px 10px;border-radius:6px;color:var(--muted);white-space:nowrap}
.nav a:hover{color:var(--ink);background:var(--stone)}
.nav a[aria-current="page"]{color:var(--ink)}
.nav a[aria-current="page"] b{color:var(--blue)}
.nav a b{font-weight:500;color:inherit}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-weight:500;font-size:.95rem;text-decoration:none;padding:12px 18px;border-radius:8px;border:1.5px solid var(--ink);background:var(--ink);color:var(--paper);transition:background .15s,color .15s;cursor:pointer}
.btn:hover{background:#24262B}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.dark .btn{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.dark .btn:hover{background:#fff}
.dark .btn.ghost{background:transparent;color:var(--paper)}
.dark .btn.ghost:hover{background:var(--paper);color:var(--ink)}
.btn .arr{font-family:var(--mono)}
.btn.sm{padding:9px 14px;font-size:.88rem}
.menu-btn{display:none;background:none;border:1.5px solid var(--ink);border-radius:8px;padding:8px 12px;font-family:var(--mono);font-size:.75rem;cursor:pointer;color:var(--ink)}
@media (max-width:1060px){
  .nav{display:none;position:absolute;top:68px;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--paper);border-bottom:1px solid var(--line);padding:8px var(--gut-r) 16px var(--gut)}
  .nav.open{display:flex}
  .nav a{font-size:.9rem;padding:12px 8px;border-bottom:1px solid var(--line-soft)}
  .menu-btn{display:inline-block}
  .head-cta{display:none}
}

/* element tile, the brand unit */
.tile{--s:64px;position:relative;width:var(--s);height:var(--s);border:2px solid currentColor;border-radius:calc(var(--s)*.125);display:grid;place-items:center;font-weight:600;font-size:calc(var(--s)*.36);letter-spacing:-0.02em;flex:none;line-height:1}
.tile::before{content:"";position:absolute;top:calc(var(--s)*.12);left:calc(var(--s)*.12);width:calc(var(--s)*.11);height:calc(var(--s)*.11);border-radius:50%;background:var(--blue)}
.tile.no-e::before{display:none}
.tile .z{position:absolute;top:calc(var(--s)*.07);right:calc(var(--s)*.1);font-family:var(--mono);font-weight:400;font-size:max(9px,calc(var(--s)*.14));letter-spacing:0;opacity:.7}
.tile.dash{border-style:dashed;opacity:.6}
.tile.dash::before{display:none}
.tile.big{--s:132px}
.tile.lg{--s:96px}
.tile.sm{--s:44px}
.tile.xs{--s:34px}
.tiles{display:flex;gap:8px;flex-wrap:wrap}

/* page hero (sub pages) */
.page-hero{padding-block:88px 72px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.page-hero .wrap{display:grid;grid-template-columns:1fr auto;gap:48px;align-items:end}
.page-hero .cell{display:grid;gap:10px;justify-items:start}
.page-hero .cell .nm{font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.crumbs{font-family:var(--mono);font-size:.76rem;color:var(--muted);letter-spacing:.04em}
.crumbs a{text-decoration:none;color:var(--muted)}
.crumbs a:hover{color:var(--ink)}
@media (max-width:760px){.page-hero .wrap{grid-template-columns:1fr}.page-hero .cell{order:-1}.tile.big{--s:96px}.page-hero{padding-block:56px 48px}}

/* home hero with periodic table */
.hero{padding-block:72px 64px;position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:56px;align-items:center}
.hero .copy{display:grid;gap:26px}
.hero .ctas{display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:980px){.hero .wrap{grid-template-columns:1fr}.hero{padding-block:48px}}
.ptable-wrap{display:grid;gap:14px;min-width:0}
.ptable{display:grid;grid-template-columns:repeat(18,minmax(0,1fr));gap:3px;width:100%}
.el{aspect-ratio:1;border:1px solid var(--ink-line);border-radius:3px;position:relative;display:grid;place-items:center;font-size:clamp(6px,0.85vw,11px);font-weight:500;color:#565A63;transition:background .35s,border-color .35s,color .35s}
.el span{position:absolute;top:1px;right:2px;font-family:var(--mono);font-size:clamp(4px,.5vw,7px);opacity:.6}
.el.core{border-color:var(--paper);color:var(--paper);border-width:1.5px}
.el.core::before{content:"";position:absolute;top:12%;left:12%;width:13%;height:13%;border-radius:50%;background:var(--blue)}
.el.next{border-style:dashed;border-color:#7E828C;color:#B8BBC2}
.el.on{background:var(--blue);border-color:var(--blue);color:#fff}
.el.on span{opacity:.9}
.ptable .gap{aspect-ratio:1}
.readout{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-family:var(--mono);font-size:.74rem;letter-spacing:.05em;color:var(--ink-muted);border-top:1px solid var(--ink-line);padding-top:12px;min-height:2.6em}
.readout b{color:var(--paper);font-weight:500}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:.7rem;color:var(--ink-muted);letter-spacing:.04em}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.legend .l1{border:1.5px solid var(--paper);position:relative}
.legend .l2{border:1px dashed #7E828C}
.legend .l3{background:var(--blue)}

/* proof bar */
.proof{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.proof div{padding:26px 18px 24px;border-left:1px solid var(--line);display:grid;gap:6px;align-content:start}
.proof div:first-child{border-left:0;padding-left:0}
.proof b{font-size:clamp(1.6rem,2.6vw,2.2rem);font-weight:600;letter-spacing:-0.035em;line-height:1;font-variant-numeric:tabular-nums}
.proof span{font-size:.86rem;color:var(--muted);line-height:1.4}
.proof em{font-style:normal;font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--blue)}
@media (max-width:980px){.proof{grid-template-columns:repeat(3,1fr)}.proof div:nth-child(4){border-left:0;padding-left:0}.proof div:nth-child(n+4){border-top:1px solid var(--line)}}
@media (max-width:560px){.proof{grid-template-columns:repeat(2,1fr)}.proof div{border-left:0!important;padding-left:0!important;padding-right:12px}.proof div:nth-child(n+3){border-top:1px solid var(--line)}}

/* statements */
.statements{display:grid;gap:0}
.stmt{display:grid;grid-template-columns:110px 1fr;gap:32px;padding-block:36px;border-top:1px solid var(--ink-line);align-items:start}
.stmt:first-child{border-top:0;padding-top:0}
.stmt p{font-size:clamp(1.5rem,3.4vw,2.6rem);line-height:1.12;letter-spacing:-0.03em;font-weight:600;max-width:24ch}
.stmt p em{font-style:normal;color:var(--ink-muted)}
@media (max-width:640px){.stmt{grid-template-columns:1fr;gap:16px}}

/* split */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.split.top{align-items:start}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:36px}}
.photo{border-radius:10px;overflow:hidden;background:var(--ink-2);position:relative}
.photo img{width:100%;height:100%;object-fit:cover}
.photo .tag{position:absolute;left:12px;bottom:12px;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;background:rgba(10,11,13,.82);color:var(--paper);padding:5px 8px;border-radius:4px}
.ratio-43{aspect-ratio:4/3}
.ratio-32{aspect-ratio:3/2}
.ratio-1{aspect-ratio:1}
.ratio-21{aspect-ratio:2/1}

/* to-scale bars */
.scale{display:grid;gap:22px}
.bar-row{display:grid;gap:8px}
.bar-row .lab{display:flex;justify-content:space-between;gap:12px;font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;flex-wrap:wrap}
.bar{height:34px;border-radius:4px;background:var(--line)}
.bar.trad{background:repeating-linear-gradient(135deg,#C9C9C1 0 6px,#D9D9D2 6px 12px);width:100%}
.bar.ad{background:var(--blue);width:3px}
.scale small{font-family:var(--mono);font-size:.7rem;color:var(--muted)}

/* loop diagram */
.loopfig{overflow-x:auto;-webkit-overflow-scrolling:touch}
.loopfig svg{min-width:760px;width:100%;height:auto;display:block}
.loopfig .n-rect{fill:var(--ink-2);stroke:var(--ink-line);stroke-width:1.5}
.loopfig .n-rect.hl{stroke:var(--blue)}
.loopfig .n-t{fill:var(--paper);font-family:var(--sans);font-weight:600;font-size:17px}
.loopfig .n-s{fill:var(--ink-muted);font-family:var(--mono);font-size:10.5px;letter-spacing:.06em}
.loopfig .n-k{fill:var(--blue);font-family:var(--mono);font-size:10px}
.loopfig .ed{fill:none;stroke:#5B5E66;stroke-width:1.5}
.loopfig .ed.b{stroke:var(--blue);stroke-width:2}
.loopfig .ar{fill:#5B5E66}
.loopfig .ar.b{fill:var(--blue)}
.loopfig .dot{fill:var(--blue)}
.loopfig .lbl{fill:var(--ink-muted);font-family:var(--mono);font-size:10px;letter-spacing:.06em}

/* cards */
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:980px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:26px;display:grid;gap:14px;align-content:start;min-width:0}
.dark .card{background:var(--ink-2);border-color:var(--ink-line)}
.card p{color:var(--muted);font-size:.97rem}
.dark .card p{color:var(--ink-muted)}
.card h3{font-size:1.25rem}
a.card{text-decoration:none;transition:border-color .15s,transform .15s}
a.card:hover{border-color:var(--ink);transform:translateY(-2px)}
.dark a.card:hover{border-color:var(--paper)}
.card .more{font-family:var(--mono);font-size:.76rem;letter-spacing:.05em;text-transform:uppercase;color:var(--blue)}
.spec{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:flex;gap:6px 14px;flex-wrap:wrap}
.dark .spec{color:var(--ink-muted)}
.spec b{color:var(--ink);font-weight:500}
.dark .spec b{color:var(--paper)}

/* app card */
.app{padding:0;overflow:hidden}
.app .ph{aspect-ratio:16/10;overflow:hidden;background:var(--ink-2)}
.app .ph img{width:100%;height:100%;object-fit:cover}
.app .bd{padding:22px 24px 26px;display:grid;gap:14px}
.app .tiles .tile{--s:38px}

/* readiness rail */
.rail{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.rail div{display:grid;gap:6px}
.rail i{height:4px;border-radius:2px;background:var(--line)}
.rail .done i{background:var(--ink)}
.rail .now i{background:var(--blue)}
.dark .rail i{background:var(--ink-line)}
.dark .rail .done i{background:var(--paper)}
.rail span{font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.rail .done span,.rail .now span{color:var(--ink)}
.rail .now span{color:var(--blue)}

/* case card */
.case{padding:0;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.case .ph{min-height:280px;background:var(--ink-2)}
.case .ph img{width:100%;height:100%;object-fit:cover}
.case .bd{padding:30px;display:grid;gap:16px;align-content:start}
.case .big{font-size:clamp(2.6rem,5vw,3.6rem);font-weight:600;letter-spacing:-0.04em;line-height:1;font-variant-numeric:tabular-nums}
@media (max-width:760px){.case{grid-template-columns:1fr}.case .ph{min-height:220px}}

/* partners */
.pgroup{display:grid;grid-template-columns:220px 1fr;gap:24px;padding-block:22px;border-top:1px solid var(--line);align-items:center}
.pgroup:last-child{border-bottom:1px solid var(--line)}
.dark .pgroup{border-color:var(--ink-line)}
.plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.pmark{border:1px solid var(--line);border-radius:8px;height:72px;display:grid;place-items:center;font-weight:600;letter-spacing:-0.02em;font-size:1.05rem;color:#2A2C31;background:var(--white);text-align:center;padding:0 10px;line-height:1.15}
.dark .pmark{background:var(--ink-2);border-color:var(--ink-line);color:var(--paper)}
@media (max-width:700px){.pgroup{grid-template-columns:1fr;gap:12px}}

/* labs */
.labs{display:grid;gap:0}
.lab{display:grid;grid-template-columns:90px minmax(0,1.3fr) minmax(0,1fr) 140px;gap:24px;padding-block:28px;border-top:1px solid var(--ink-line);align-items:start}
.lab:last-child{border-bottom:1px solid var(--ink-line)}
.lab h3{font-size:1.3rem}
.lab p{color:var(--ink-muted);font-size:.95rem}
.status{font-family:var(--mono);font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;padding:5px 9px;border-radius:999px;border:1px solid var(--ink-line);justify-self:start;white-space:nowrap}
.status.live{background:var(--blue);border-color:var(--blue);color:#fff}
.status.build{border-color:var(--paper);color:var(--paper)}
.status.plan{color:var(--ink-muted);border-style:dashed}
@media (max-width:860px){.lab{grid-template-columns:60px 1fr;gap:14px 18px}.lab>:nth-child(3),.lab>:nth-child(4){grid-column:2}}

/* people */
.person{display:grid;gap:14px;align-content:start}
.person .tile{--s:76px;font-size:28px}
.person h3{font-size:1.15rem}
.person .role{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--blue)}
.person p{font-size:.95rem;color:var(--muted)}
.dark .person p{color:var(--ink-muted)}

/* timeline */
.tl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:2px solid var(--ink)}
.tl>div{padding:22px 22px 0 0;display:grid;gap:10px;align-content:start;position:relative}
.tl>div::before{content:"";position:absolute;top:-7px;left:0;width:12px;height:12px;border-radius:3px;background:var(--ink)}
.tl>div.now::before{background:var(--blue)}
.tl>div.next::before{background:var(--paper);border:2px dashed var(--ink)}
.tl ul{margin:0;padding-left:18px;color:var(--muted);font-size:.95rem;display:grid;gap:6px}
@media (max-width:760px){.tl{grid-template-columns:1fr;border-top:0;border-left:2px solid var(--ink)}.tl>div{padding:0 0 28px 24px}.tl>div::before{left:-7px;top:4px}}

/* steps */
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;counter-reset:st}
.steps>div{border-top:2px solid var(--ink);padding-top:16px;display:grid;gap:8px;align-content:start}
.steps>div.b{border-color:var(--blue)}
.steps .k{font-family:var(--mono);font-size:.72rem;color:var(--blue);letter-spacing:.05em}
.steps h4{font-size:1.05rem}
.steps p{font-size:.92rem;color:var(--muted)}
.dark .steps>div{border-color:var(--paper)}
.dark .steps>div.b{border-color:var(--blue)}
.dark .steps p{color:var(--ink-muted)}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* placeholder */
.ph-note{border:1.5px dashed var(--line);border-radius:12px;padding:28px;display:grid;gap:10px;place-content:center;text-align:center;color:var(--muted);min-height:220px}
.dark .ph-note{border-color:var(--ink-line);color:var(--ink-muted)}
.ph-note .eyebrow{color:var(--blue)}

/* chart (benchmark placeholder) */
.bench{display:grid;gap:10px}
.bench .row{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:center;font-family:var(--mono);font-size:.74rem}
.bench .row i{height:22px;border-radius:3px;border:1.5px dashed var(--ink-line);display:block}
.bench .row.ad i{border:0;background:var(--blue);opacity:.25}

/* news */
.post{display:grid;grid-template-columns:150px 1fr auto;gap:28px;padding-block:28px;border-top:1px solid var(--line);align-items:start;text-decoration:none}
.post:last-child{border-bottom:1px solid var(--line)}
.post h3{font-size:1.35rem}
.post p{color:var(--muted);font-size:.97rem;margin-top:8px;max-width:62ch}
.pill{font-family:var(--mono);font-size:.66rem;letter-spacing:.07em;text-transform:uppercase;padding:4px 9px;border-radius:999px;border:1px solid var(--line);white-space:nowrap;color:var(--muted)}
.pill.b{background:var(--blue);border-color:var(--blue);color:#fff}
@media (max-width:700px){.post{grid-template-columns:1fr;gap:10px}}

/* form */
form.enq{display:grid;gap:20px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:640px){.f2{grid-template-columns:1fr}}
.fld{display:grid;gap:7px}
.fld label,.fld legend{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.fld input,.fld textarea{font:inherit;font-size:1rem;padding:12px 14px;border:1.5px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink);width:100%}
.fld input:focus,.fld textarea:focus{outline:none;border-color:var(--ink)}
fieldset.fld{border:0;padding:0;margin:0}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.chips label{font-family:var(--sans);font-size:.92rem;letter-spacing:0;text-transform:none;color:var(--ink);border:1.5px solid var(--line);border-radius:999px;padding:8px 14px;cursor:pointer;background:var(--white);display:inline-flex;gap:8px;align-items:center}
.chips input{accent-color:var(--blue);margin:0}
.chips label:has(input:checked){border-color:var(--ink);background:var(--ink);color:var(--paper)}
.ok{border:1.5px solid var(--blue);border-radius:10px;padding:18px 20px;background:#EEF1FF}

/* cta band */
.cta{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end}
@media (max-width:760px){.cta{grid-template-columns:1fr}}

/* footer */
.site-foot{background:var(--ink);color:var(--paper);padding-block:64px 40px}
.site-foot .top{display:grid;grid-template-columns:1.2fr 2fr;gap:48px;padding-bottom:48px;border-bottom:1px solid var(--ink-line)}
.site-foot .sign{font-size:clamp(1.4rem,2.6vw,2rem);font-weight:600;letter-spacing:-0.03em;line-height:1.15;margin-top:24px}
.site-foot .sign em{font-style:normal;color:var(--ink-muted)}
.site-foot .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.site-foot h4{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);font-weight:400;margin-bottom:12px}
.site-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.site-foot a{text-decoration:none;color:var(--paper);font-size:.95rem}
.site-foot a:hover{color:var(--blue)}
.site-foot .bot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:24px;font-family:var(--mono);font-size:.7rem;letter-spacing:.05em;color:var(--ink-muted);text-transform:uppercase}
@media (max-width:760px){.site-foot .top{grid-template-columns:1fr}.site-foot .cols{grid-template-columns:1fr 1fr}}
.proto{display:inline-flex;gap:8px;align-items:center}
.proto i{width:7px;height:7px;border-radius:50%;background:var(--blue)}

.site-foot{border-top:1px solid var(--ink-line)}
.hero-min{padding-block:104px 112px}
.hero-min .wrap{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:64px}
.hero-min h1{font-size:clamp(2rem,3.6vw,3.2rem);max-width:12ch}
@media (max-width:980px){.hero-min{padding-block:64px 72px}.hero-min .wrap{grid-template-columns:1fr;gap:44px}}
@media (max-width:600px){.el span{display:none}.el.core::before{display:none}}

/* left sidebar layout (CuspAI-inspired) */
.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}
.side{position:sticky;top:0;height:100vh;height:100dvh;display:flex;flex-direction:column;gap:36px;padding:30px 20px 26px max(22px,env(safe-area-inset-left,0px));border-right:1px solid var(--line);background:var(--paper);z-index:50;overflow-y:auto}
.side .logo img{height:28px;width:auto}
.side .nav{display:flex;flex-direction:column;align-items:stretch;gap:2px;position:static;padding:0;border:0;background:none}
.side .nav a{font-family:var(--mono);font-size:.8rem;letter-spacing:.04em;text-decoration:none;padding:9px 10px;border-radius:6px;color:var(--muted);border:0}
.side .nav a:hover{color:var(--ink);background:var(--stone)}
.side .nav a.sub{padding:6px 10px 6px 30px;font-size:.72rem}
.side .nav a[aria-current="page"],.side .nav a.in{color:var(--ink);background:var(--white);box-shadow:inset 2px 0 0 var(--blue)}
.side .nav a[aria-current="page"] b,.side .nav a.in b{color:var(--blue)}
.side .nav .nav-cta{display:none}
.side-foot{margin-top:auto;display:grid;gap:16px;justify-items:start}
.side-foot .mono{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);line-height:1.5}
.side .menu-btn{display:none}
.content{min-width:0}
@media (max-width:1240px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.proof{grid-template-columns:repeat(3,1fr)}.proof div:nth-child(4){border-left:0;padding-left:0}.proof div:nth-child(n+4){border-top:1px solid var(--line)}}
@media (max-width:1240px) and (min-width:981px){.hero-min .wrap{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:40px}}
@media (max-width:1060px){
  .shell{grid-template-columns:1fr}
  .side{position:sticky;top:env(safe-area-inset-top,0px);height:auto;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;padding:12px max(20px,env(safe-area-inset-right,0px)) 12px max(20px,env(safe-area-inset-left,0px));border-right:0;border-bottom:1px solid var(--line);overflow:visible}
  .side .nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:8px max(20px,env(safe-area-inset-right,0px)) 16px max(20px,env(safe-area-inset-left,0px))}
  .side .nav.open{display:flex}
  .side .nav a{font-size:.9rem;padding:12px 8px;border-bottom:1px solid var(--line-soft);border-radius:0}
  .side .nav a.sub{padding-left:28px;font-size:.82rem}
  .side .nav .nav-cta{display:block;color:var(--blue)}
  .side-foot{display:none}
  .side .menu-btn{display:inline-block}
}
@media (max-width:560px){.proof{grid-template-columns:repeat(2,1fr)}.proof div{border-left:0!important;padding-left:0!important}.proof div:nth-child(n+3){border-top:1px solid var(--line)}}

/* section labels on the long home page */
[data-sec]{scroll-margin-top:0}
.sec-bar{padding-block:96px 48px;background:var(--paper);border-top:1px solid var(--line)}
.sec-tag{display:flex;gap:14px;align-items:center;margin-bottom:26px}
.sec-tag .tile.xs{--s:38px;font-family:var(--mono);font-size:13px;font-weight:500;border-color:var(--blue);color:var(--blue)}
.sec-tag .eyebrow{color:var(--ink);white-space:nowrap}
.sec-tag i{flex:1;height:1px;background:var(--line)}
.sec-bar h2{max-width:18ch}
@media (max-width:720px){.sec-bar{padding-block:64px 32px}}
@media (max-width:1060px){[data-sec]{scroll-margin-top:60px}}

/* section bars: links to sub-pages */
.sec-row{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}
.jumps{display:grid;gap:10px;min-width:min(100%,340px)}
.jump{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:12px 16px 12px 12px;background:var(--white);border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}
.jump:hover{border-color:var(--ink);transform:translateX(2px)}
.jump b{display:block;font-weight:600;font-size:1rem}
.jump em{display:block;font-style:normal;font-size:.84rem;color:var(--muted)}
.jump .arr{font-family:var(--mono);color:var(--blue)}
.head.row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;max-width:none}

/* case studies */
.cs-mini{text-decoration:none;color:inherit;gap:12px}
.cs-mini .big{font-size:clamp(2.4rem,4vw,3.2rem);font-weight:600;letter-spacing:-0.04em;line-height:1}
.cs-mini p{color:var(--muted)}
.cs-mini.dark{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.cs-mini.dark p{color:var(--ink-muted)}
.cs-filter{display:flex;flex-wrap:wrap;gap:8px}
.cs-filter button{font-family:var(--mono);font-size:.76rem;letter-spacing:.05em;text-transform:uppercase;border:1.5px solid var(--line);background:var(--white);color:var(--ink);border-radius:999px;padding:8px 14px;cursor:pointer}
.cs-filter button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.cs-list{display:grid;gap:24px}
.cs{padding:0;overflow:hidden;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);scroll-margin-top:24px}
.cs[hidden]{display:none}
.cs .ph{min-height:320px;background:var(--ink-2)}
.cs .ph img{width:100%;height:100%;object-fit:cover}
.cs .bd{padding:32px;display:grid;gap:18px;align-content:start}
.cs .big{font-size:clamp(2.6rem,5vw,3.6rem);font-weight:600;letter-spacing:-0.04em;line-height:1}
.cs-top{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.cs-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.cs-cols p{color:var(--muted);font-size:.95rem;margin-top:6px}
.cs-res{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cs-res div{padding:14px 12px 14px 0;display:grid;gap:2px}
.cs-res div+div{padding-left:14px;border-left:1px solid var(--line)}
.cs-res b{font-size:1.25rem;font-weight:600;letter-spacing:-0.02em}
.cs-res span{font-family:var(--mono);font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.cs-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.cs-foot .tile{--s:44px}
.cs-foot .rail{flex:1;min-width:240px}
@media (max-width:860px){.cs{grid-template-columns:1fr}.cs .ph{min-height:220px}.cs-cols{grid-template-columns:1fr}}
@media (max-width:520px){.cs-res{grid-template-columns:1fr}.cs-res div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}}

/* ---------- one theme per page (v7) ----------
   Home is one light Paper scroll. Sub-pages use the dark theme by swapping tokens. */
.hero-min .wrap{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:56px}
.hero-min h1{font-size:clamp(2.2rem,4.2vw,3.6rem);max-width:14ch}
.hero-min .lede{font-size:1.08rem}
@media (max-width:1240px) and (min-width:981px){.hero-min .wrap{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px}}

/* periodic table on Paper */
.el{border-color:var(--line);color:#A3A69E}
.el.core{border-color:var(--ink);color:var(--ink)}
.el.next{border-color:#8D9098;color:#6E717A}
.el.on{background:var(--blue);border-color:var(--blue);color:#fff}
.readout{color:var(--muted);border-top-color:var(--line)}
.readout b,#ro-fam{color:var(--ink)}
.legend{color:var(--muted)}
.legend .l1{border-color:var(--ink)}
.legend .l2{border-color:#8D9098}

/* components that used to sit on Ink bands, now token-based for either theme */
.stmt{border-top-color:var(--line)}
.stmt p em{color:var(--muted)}
.loopfig .n-rect{fill:var(--white);stroke:var(--line)}
.loopfig .n-rect.hl{stroke:var(--blue)}
.loopfig .n-t{fill:var(--ink)}
.loopfig .n-s,.loopfig .lbl{fill:var(--muted)}
.loopfig .ed{stroke:var(--muted)}
.loopfig .ar{fill:var(--muted)}
.lab,.lab:last-child{border-color:var(--line)}
.lab p{color:var(--muted)}
.status{border-color:var(--line)}
.status.build{border-color:var(--ink);color:var(--ink)}
.status.plan{color:var(--muted)}
.bench .row i{border-color:var(--line)}
.cta-band,.band.cta{border-top:1px solid var(--line)}

.theme-dark{
  --ink:#F2F2EE; --paper:#0A0B0D; --stone:#16181C; --white:#121418; --ink-2:#1A1C21;
  --ink-line:#2A2D33; --ink-muted:#9A9DA6; --muted:#9A9DA6; --line:#2A2D33; --line-soft:#1D1F24;
  color-scheme:dark;
}
.theme-dark body{background:var(--paper);color:var(--ink)}
.theme-dark .btn:hover{background:#fff;border-color:#fff}
.theme-dark .btn.ghost:hover{background:var(--ink);color:var(--paper)}
.theme-dark .bar.trad{background:repeating-linear-gradient(135deg,#2A2D33 0 6px,#1A1C21 6px 12px)}
.theme-dark .pmark{color:var(--ink)}
.theme-dark .photo .tag{background:rgba(10,11,13,.82);color:#F2F2EE}
.theme-dark .site-foot{background:#050607;color:#F2F2EE;--paper:#F2F2EE;--ink-line:#24272D}
.theme-dark .side{background:#0A0B0D}
.theme-dark .announce{color:#fff}

/* smooth scrolling and section anchors */
html{scroll-behavior:smooth}
[data-sec],#careers,.cs,#in-progress{scroll-margin-top:0}
@media (max-width:1060px){[data-sec],#careers,.cs,#in-progress{scroll-margin-top:64px}}

/* sliding indicator for the sidebar */
.side .nav{position:relative}
.nav-ind{position:absolute;left:0;top:0;width:2px;height:0;background:var(--blue);border-radius:2px;opacity:0;transition:transform .45s cubic-bezier(.2,.7,.2,1),height .45s cubic-bezier(.2,.7,.2,1),opacity .2s;pointer-events:none}
.side .nav a{transition:color .25s,background .25s,box-shadow .25s}
.has-ind .side .nav a[aria-current="page"],.has-ind .side .nav a.in{box-shadow:none}
@media (max-width:1060px){.nav-ind{display:none}.has-ind .side .nav a[aria-current="page"]{box-shadow:inset 2px 0 0 var(--blue)}}

/* reveal on scroll */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none}}

/* electron dot on every button, echoing the element tile in the logo */
.btn,.menu-btn,.cs-filter button,button[type="submit"]{position:relative}
.btn::before,.menu-btn::before,.cs-filter button::before,button[type="submit"]::before{content:"";position:absolute;top:6px;left:7px;width:5px;height:5px;border-radius:50%;background:var(--blue);pointer-events:none}
.btn::before{top:10px;left:11px}
.btn.sm::before{top:7px;left:8px;width:4px;height:4px}
.menu-btn::before{top:5px;left:5px;width:4px;height:4px}
.cs-filter button::before{top:6px;left:9px;width:4px;height:4px}
.cs-filter button[aria-pressed="true"]::before{background:var(--blue)}

/* team portraits */
.portrait{width:120px;height:120px;border-radius:12px;overflow:hidden;background:var(--stone)}
.portrait img{width:100%;height:100%;object-fit:cover}
.people{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:48px 24px}
.people .person{gap:10px}
.people .portrait{width:100%;height:auto;aspect-ratio:1;border-radius:10px;margin-bottom:6px}
.people .person p{font-size:.9rem}
@media (max-width:900px){.people{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 20px}}
/* hover: element tile + bio over the photo */
.people .person{outline:none;cursor:default}
.people .portrait{position:relative}
.people .portrait img{transition:transform .5s cubic-bezier(.2,.7,.2,1),filter .4s}
.people .ov{position:absolute;inset:0;background:rgba(10,11,13,.9);color:#F2F2EE;padding:18px;display:flex;flex-direction:column;justify-content:space-between;gap:12px;opacity:0;transition:opacity .3s ease}
.people .ov .tile{--s:56px;color:#F2F2EE;transform:translateY(8px);transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.people .ov p{color:#F2F2EE;font-size:.88rem;line-height:1.45;transform:translateY(8px);transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.people .person:hover .ov,.people .person:focus-within .ov,.people .person:focus .ov{opacity:1}
.people .person:hover .ov .tile,.people .person:hover .ov p,.people .person:focus .ov .tile,.people .person:focus .ov p{transform:none}
.people .person:hover img,.people .person:focus img{transform:scale(1.04);filter:grayscale(1)}
.people .person:focus-visible .portrait{outline:2px solid var(--blue);outline-offset:3px}
@media (max-width:1100px){.people .ov p{font-size:.8rem}.people .ov .tile{--s:44px}}
@media (max-width:640px){.people .ov{padding:12px;gap:8px;overflow:auto}.people .ov .tile{--s:40px}.people .ov p{font-size:.74rem;line-height:1.38}.people .person h3{font-size:1rem}}
.people .ov .logos{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding-top:10px;border-top:1px solid rgba(242,242,238,.18);transform:translateY(8px);transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.people .ov .logos img{height:18px;width:auto;max-width:84px;object-fit:contain;opacity:.92}
.people .ov .logos span{font-weight:600;font-size:.82rem;letter-spacing:-0.01em;color:#F2F2EE;opacity:.92}
.people .person:hover .ov .logos,.people .person:focus .ov .logos{transform:none}
.people .ov{justify-content:flex-start}
.people .ov p{flex:1}
@media (max-width:640px){.people .ov .logos img{height:13px;max-width:60px}.people .ov .logos{gap:6px 10px;padding-top:6px}.people .ov .logos span{font-size:.7rem}}

/* ---------- v9: floating nav over the page ---------- */
.wrap{max-width:1360px}
.hero-logo{height:44px;width:auto;margin-bottom:6px}
.side .logo .mark{display:none}
@media (min-width:1061px){
  .shell{display:block}
  .content{padding-right:0}
  .wrap{padding-right:calc(var(--gut-r) + 190px)}
  .side{position:fixed;top:50%;right:22px;left:auto;transform:translateY(-50%);width:auto;height:auto;padding:0;gap:14px;
        border:0;background:none;box-shadow:none;overflow:visible;display:flex;flex-direction:column;align-items:flex-end;z-index:50}
  .side .logo{display:block}
  .side .logo .word{display:none}
  .side .logo .mark{display:block;width:32px;height:32px;border-radius:6px}
  .side .nav{align-items:flex-end;gap:3px;position:relative}
  .side .nav .grp{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
  .side .nav a{display:inline-flex;align-items:center;white-space:nowrap;padding:5px 11px;border-radius:999px;font-size:.72rem;
        color:var(--muted);background:color-mix(in srgb,var(--paper) 80%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:none}
  .side .nav a:hover{color:var(--ink);background:var(--paper)}
  .side .nav a[aria-current="page"],.side .nav a.in{color:var(--ink);background:var(--white);box-shadow:0 1px 0 var(--line),0 0 0 1px var(--line-soft)}
  .side .nav a.sub{display:none;padding:4px 11px;font-size:.66rem}
  .side .nav .grp:hover a.sub,.side .nav .grp.act a.sub{display:inline-flex}
  .side-foot{display:none}
  .nav-ind{left:auto;right:-9px;width:2px}
}
@media (max-width:980px){.hero-min .wrap{grid-template-columns:1fr;gap:44px}}
@media (max-width:1060px){.hero-logo{display:none}}
/* careers lives in the footer */
.site-foot .careers{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-bottom:48px;margin-bottom:48px;border-bottom:1px solid var(--ink-line)}
.site-foot .careers h3{font-size:clamp(1.5rem,2.6vw,2rem);letter-spacing:-0.03em}
.site-foot .careers p{color:var(--ink-muted);max-width:60ch}
.site-foot .careers .eyebrow{color:var(--ink-muted)}
.site-foot .careers .btn{background:#F2F2EE;color:#0A0B0D;border-color:#F2F2EE}
.site-foot .careers .btn:hover{background:#fff}
#careers{scroll-margin-top:24px}
@media (max-width:1060px){.side .nav .grp{display:contents}.side .nav{position:absolute}}
/* sub-pages fan out to the left of their section, on the same line */
@media (min-width:1061px){
  .side .nav .grp{flex-direction:row;align-items:center;justify-content:flex-end;gap:6px}
  .side .nav .grp > a:first-child{order:2}
  .side .nav .grp > a.sub{order:1;font-size:.68rem;padding:5px 11px}
  .side .nav .grp:hover a.sub,.side .nav .grp.act a.sub{animation:subIn .35s cubic-bezier(.2,.7,.2,1) both}
  .side .nav .grp a.sub:nth-of-type(2){animation-delay:.04s}
  .side .nav .grp a.sub:nth-of-type(3){animation-delay:0s}
}
@keyframes subIn{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
/* hero fills the first screen */
.hero-min{min-height:calc(100vh - 38px);min-height:calc(100svh - 38px);display:flex;align-items:center;padding-block:72px}
.hero-min .wrap{width:100%}
@media (min-width:981px){.hero-min .wrap{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:64px}}
@media (min-width:981px) and (max-width:1240px){.hero-min .wrap{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:40px}}
@media (max-width:980px){.hero-min{min-height:0;padding-block:56px 64px}}
@media (min-width:1061px){.hero-min .wrap{max-width:none;padding-left:clamp(24px,4vw,80px)}}
.hero-min h1{font-size:clamp(2.2rem,4.3vw,5.2rem)}
.hero-min .lede{font-size:clamp(1.05rem,1.1vw,1.3rem);max-width:46ch}
.hero-min .hero-logo{height:clamp(40px,2.8vw,56px)}
.hero-min .ptable{gap:clamp(3px,.3vw,5px)}
.hero-min .el{font-size:clamp(6px,0.8vw,15px)}
.hero-min .readout,.hero-min .legend{font-size:clamp(.7rem,.75vw,.9rem)}
/* hero copy one step smaller */
.hero-min h1{font-size:clamp(2rem,3.4vw,4.1rem)}
.hero-min .lede{font-size:clamp(1rem,.95vw,1.15rem)}
.hero-min .hero-logo{height:clamp(34px,2.3vw,46px)}

/* partner logos (from the Oct 27 deck) */
.pmark img{max-height:40px;max-width:80%;width:auto;object-fit:contain}
.pmark:has(img){background:#FBFBF9;border-color:var(--line)}
.pcard{padding:20px;gap:8px}
.pcard img{height:36px;width:auto;max-width:140px;object-fit:contain;object-position:left center;margin-bottom:6px}
.pcard .ptxt{height:36px;display:flex;align-items:center;font-weight:600;letter-spacing:-0.02em;margin-bottom:6px}
.pcard h3{font-size:1.05rem}
.pcard p{font-size:.88rem}

/* Dynamic Labs: rapid sampling + rapid characterization */
.rs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.rs figure{margin:0;display:grid;gap:14px;align-content:start}
.rs img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:10px;background:var(--ink-2)}
.rs figcaption{display:grid;gap:6px;border-top:2px solid var(--ink);padding-top:12px}
.rs .k{font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;color:var(--blue)}
.rs h4{font-size:1.05rem}
.rs p{color:var(--muted);font-size:.9rem}
@media (max-width:900px){.rs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.rs{grid-template-columns:1fr}}
.rc{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:20px}
.rc-main{padding:0;overflow:hidden;gap:0}
.rc-main .ph{aspect-ratio:16/10;overflow:hidden}
.rc-main .ph img{width:100%;height:100%;object-fit:cover}
.rc-main .bd{padding:22px;display:grid;gap:10px}
.rc-main p,.rc .card p{color:var(--muted);font-size:.93rem}
.rc-figs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rc-figs img{width:100%;aspect-ratio:1;object-fit:contain;background:#fff;border-radius:6px;padding:6px}
@media (max-width:1100px){.rc{grid-template-columns:1fr 1fr}.rc-main{grid-column:1/-1}}
@media (max-width:640px){.rc{grid-template-columns:1fr}}

/* Atomic AI benchmark */
.bench2{display:grid;gap:26px}
.bm{display:grid;gap:10px}
.bm h4{font-size:1rem}
.bm-row{display:grid;grid-template-columns:120px 1fr 72px;gap:12px;align-items:center;font-family:var(--mono);font-size:.76rem;color:var(--muted)}
.bm-row i{display:block;height:14px;border-radius:3px;background:var(--line);width:var(--w)}
.bm-row b{font-weight:500;color:var(--ink);text-align:right}
.bm-row.ad span,.bm-row.ad b{color:var(--blue)}
.bm-row.ad i{background:var(--blue)}
@media (max-width:520px){.bm-row{grid-template-columns:96px 1fr 64px}}
.pcard .ptxt{font-family:var(--mono);font-size:.95rem;letter-spacing:.06em;color:#BB0000}

/* v10 Why metals comparison: bigger figures, solid bars, multiplier callout */
.scale.cmp{background:var(--surface,#fff);border:1px solid var(--line);border-radius:14px;padding:28px 28px 22px;gap:26px;box-shadow:0 1px 0 rgba(10,11,13,.04),0 18px 40px -24px rgba(10,11,13,.25)}
.cmp-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.cmp-x{font-family:var(--mono);font-size:.8rem;letter-spacing:.04em;color:var(--blue);background:color-mix(in srgb,var(--blue) 10%,transparent);border-radius:999px;padding:5px 12px}
.cmp-x b{font-size:1.05rem;font-weight:600}
.scale.cmp .big{font-size:clamp(2rem,3.6vw,2.8rem);font-weight:600;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.scale.cmp .ad-row .lab,.scale.cmp .ad-row .big{color:var(--blue)}
.scale.cmp .bar{height:44px;border-radius:6px}
.scale.cmp .bar.trad{background:var(--fg,#0A0B0D);opacity:.88}
.scale.cmp .bar.ad{width:6px;position:relative;overflow:visible}
.scale.cmp .bar.ad i{position:absolute;left:0;top:50%;width:12px;height:12px;margin:-6px 0 0 -3px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 0 color-mix(in srgb,var(--blue) 50%,transparent);animation:cmpPulse 1.8s ease-out infinite}
@keyframes cmpPulse{to{box-shadow:0 0 0 16px transparent}}
@media (prefers-reduced-motion:reduce){.scale.cmp .bar.ad i{animation:none}}
/* v10 sections with several sub-pages: jump cards side by side */
@media (min-width:720px){.jumps:has(.jump + .jump){grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);min-width:min(100%,640px)}}
/* v10b mirrored bars: traditional text above, AD text below, bars touching the axis */
.scale.cmp .mirror{display:grid;gap:10px}
.scale.cmp .mirror .cl{display:flex;justify-content:space-between;gap:12px;font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;flex-wrap:wrap}
.scale.cmp .mirror .bar.trad{margin-top:4px}
.scale.cmp .mirror .bar.ad{margin-bottom:4px}
.scale.cmp .mirror .bar.trad+.bar.ad{margin-top:-4px}
.scale.cmp .mirror .ad-t{color:var(--blue)}
.scale.cmp .mirror .bar.trad{margin-top:6px;margin-bottom:0}
.scale.cmp .mirror .bar.trad+.bar.ad{margin-top:-6px;margin-bottom:6px}
/* v10c tighter gap between a section title bar and its first content band */
.sec-bar{padding-bottom:40px}
.sec-bar + .band{padding-top:24px}
@media (max-width:720px){.sec-bar{padding-bottom:28px}.sec-bar + .band{padding-top:16px}}
.band{padding-block:72px}
.sec-bar + .band{padding-top:24px}
@media (max-width:720px){.band{padding-block:56px}.sec-bar + .band{padding-top:16px}}
/* v10d key metric tiles under the hero in Electron Blue */
.stmt .tile{border-color:var(--blue);color:var(--blue)}
.stmt .tile .z{color:var(--blue)}
.stmt .tile.sm{--s:88px;background:color-mix(in srgb,var(--blue) 7%,transparent)}
.stmt .tile.sm .z{font-size:.62rem}
.stmt p em{color:var(--blue)}
/* v11 condensed home: sub-heads inside a section band, contact meta line */
.sub-head{margin-top:72px;margin-bottom:28px}
.sub-head .h-m{font-size:clamp(1.4rem,2.4vw,1.9rem)}
.contact-meta{display:flex;flex-wrap:wrap;gap:12px 32px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:.92rem;color:var(--muted)}
.contact-meta b{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin-right:8px;font-weight:500}
.contact-meta a{color:inherit;text-decoration:none}.contact-meta a:hover{color:var(--blue)}
@media (max-width:720px){.sub-head{margin-top:48px}}
@media (min-width:1100px){.apps4{grid-template-columns:repeat(4,minmax(0,1fr))}.apps4 .app .ph{aspect-ratio:4/3}.apps4 .app .bd{padding:18px}.apps4 .app p{font-size:.88rem}}
/* v12 more prominent sub-page paths and links */
.jump{border:1.5px solid var(--blue);box-shadow:0 10px 24px -16px color-mix(in srgb,var(--blue) 70%,transparent);padding:14px 14px 14px 14px;gap:16px}
.jump b{font-size:1.06rem}
.jump .tile{color:var(--blue)}
.jump .arr{width:36px;height:36px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:1rem;transition:transform .2s}
.jump:hover{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 6%,var(--white));transform:translateY(-2px)}
.jump:hover .arr{transform:translateX(3px)}
.theme-dark .jump{background:#14161A;color:#F2F2EE}
.card .more{display:inline-flex;align-items:center;gap:8px;font-weight:500;font-size:.8rem;padding:9px 14px;border:1.5px solid var(--blue);border-radius:999px;align-self:start;justify-self:start;width:max-content;transition:background .15s,color .15s}
a.card:hover .more{background:var(--blue);color:#fff}
a.card{cursor:pointer}
a.card:hover{border-color:var(--blue)}
.btn.ghost{border-color:var(--blue);color:var(--blue)}
.btn.ghost:hover{background:var(--blue);color:#fff}
.theme-dark .btn.ghost,.dark .btn.ghost{border-color:var(--blue);color:#9DB0FF}
/* v12b align CTAs at the bottom of equal-height card rows */
#contact .grid.g4 .card,.grid .card.cs-mini{display:flex;flex-direction:column;align-items:flex-start;height:100%}
#contact .grid.g4 .card .more,.grid .card.cs-mini .more{margin-top:auto}
#contact .grid.g4 .card p,.grid .card.cs-mini p{margin-bottom:20px}
/* v13 section division: stacked rounded panels with alternating tone, no hairlines */
[data-sec]:not(#home){position:relative;border-radius:36px 36px 0 0;margin-top:-36px;box-shadow:0 -14px 34px -22px rgba(10,11,13,.28)}
#approach{z-index:2}#applications{z-index:3}#partners{z-index:4}#about{z-index:5}#news{z-index:6}#contact{z-index:7}
#approach,#partners,#news{background:#FBFBF9}
#applications,#about,#contact{background:var(--paper)}
#home{padding-bottom:36px}
[data-sec] .sec-bar,[data-sec] .band{background:transparent}
.sec-bar{border-top:0}
.sec-tag i{display:none}
.band+.band:not(.dark):not(.white){border-top:0}
[data-sec]:not(#home) .sec-bar{padding-top:88px}
#contact{padding-bottom:36px}
@media (max-width:720px){[data-sec]:not(#home){border-radius:24px 24px 0 0;margin-top:-24px}[data-sec]:not(#home) .sec-bar{padding-top:64px}}
/* v14 key metrics + why metals as one block */
.key-why .why-split{margin-top:88px}
/* v14b key metrics + why metals as its own card inside Home */
#home .key-why{position:relative;z-index:1;background:#FBFBF9;border-radius:36px 36px 0 0;margin-top:-36px;box-shadow:0 -14px 34px -22px rgba(10,11,13,.28);padding-top:88px}
#home .hero{padding-bottom:36px}
@media (max-width:720px){#home .key-why{border-radius:24px 24px 0 0;margin-top:-24px;padding-top:56px}}
.card .more{max-width:100%;width:auto}
#approach,#partners,#news{background:var(--paper)}
#applications,#about,#contact{background:#FBFBF9}
/* v15 stacked-card scroll animation (JS sets --enter on the incoming card, --cover on the one it covers) */
.stack-anim #home .key-why,.stack-anim [data-sec]:not(#home){--enter:1;--cover:0;transform:translateY(calc((1 - var(--enter)) * 110px)) scale(calc(.94 + .06 * var(--enter)));transform-origin:50% 0;will-change:transform}
.stack-anim #home .key-why::after,.stack-anim [data-sec]:not(#home)::after{content:"";position:absolute;inset:0;border-radius:inherit;background:#0A0B0D;opacity:calc(var(--cover) * .14);pointer-events:none;z-index:0}
.stack-anim #home .key-why>*,.stack-anim [data-sec]:not(#home)>*{position:relative;z-index:1}
@media (max-width:900px){.key-why .why-split{margin-top:56px}}
/* v16 section cards read as element tiles: blue outlined top corners + electron dot at top-left */
#home .key-why::before,[data-sec]:not(#home)::before{content:"";position:absolute;left:0;right:0;top:0;height:180px;border:2px solid var(--blue);border-bottom:0;border-radius:inherit;background:radial-gradient(circle at 44px 44px,var(--blue) 0 7px,transparent 8px);-webkit-mask:linear-gradient(#000 0 45%,transparent);mask:linear-gradient(#000 0 45%,transparent);pointer-events:none;z-index:2}
@media (max-width:720px){#home .key-why::before,[data-sec]:not(#home)::before{height:120px;background:radial-gradient(circle at 28px 28px,var(--blue) 0 5px,transparent 6px)}}
/* v16b: corner bracket on the top-left only, solid */
#home .key-why::before,[data-sec]:not(#home)::before{right:auto;width:140px;height:140px;border:0;border-top:2px solid var(--blue);border-left:2px solid var(--blue);border-radius:36px 0 0 0;-webkit-mask:none;mask:none}
@media (max-width:720px){#home .key-why::before,[data-sec]:not(#home)::before{width:96px;height:96px;border-radius:24px 0 0 0}}
/* v16c: corner bracket inset inside the card, wrapping the electron dot */
#home .key-why::before,[data-sec]:not(#home)::before{left:22px;top:22px;width:96px;height:96px;border-radius:20px 0 0 0;background:radial-gradient(circle at 24px 24px,var(--blue) 0 7px,transparent 8px)}
@media (max-width:720px){#home .key-why::before,[data-sec]:not(#home)::before{left:14px;top:14px;width:64px;height:64px;border-radius:14px 0 0 0;background:radial-gradient(circle at 17px 17px,var(--blue) 0 5px,transparent 6px)}}
#home .key-why::before,[data-sec]:not(#home)::before{border:0}
/* v17 sticky card tops replace the rise animation: the card's top edge holds at the top of the screen while its content scrolls under it */
#home .key-why::before,[data-sec]:not(#home)::before{display:none}
.card-cap{position:sticky;top:0;height:72px;margin-bottom:-72px;z-index:4;background:inherit;border-radius:36px 36px 0 0;pointer-events:none;transition:box-shadow .2s}
.card-cap::after{content:"";position:absolute;left:38px;top:38px;width:14px;height:14px;border-radius:50%;background:var(--blue)}
.card-cap::before{content:"";position:absolute;inset:0 0 auto 0;height:36px;opacity:0;transition:opacity .15s;background:radial-gradient(circle at 36px 36px,transparent 35.5px,#DADAD4 36px) left top/36px 36px no-repeat,radial-gradient(circle at 0 36px,transparent 35.5px,#DADAD4 36px) right top/36px 36px no-repeat}
.card-cap.stuck{box-shadow:0 14px 18px -16px rgba(10,11,13,.22)}
.card-cap.stuck::before{opacity:1}
#home .key-why{padding-top:0}
#home .key-why>.wrap:first-of-type{padding-top:88px}
@media (max-width:1060px){.card-cap{top:59px}}
@media (max-width:720px){.card-cap{height:52px;margin-bottom:-52px;border-radius:24px 24px 0 0}.card-cap::after{left:24px;top:24px;width:10px;height:10px}.card-cap::before{height:24px;background:radial-gradient(circle at 24px 24px,transparent 23.5px,#DADAD4 24px) left top/24px 24px no-repeat,radial-gradient(circle at 0 24px,transparent 23.5px,#DADAD4 24px) right top/24px 24px no-repeat}#home .key-why>.wrap:first-of-type{padding-top:56px}}
/* v17b scroll fix: caps take their own space (no negative margin), no scroll-time class toggling, no scroll anchoring */
html,body{overflow-anchor:none}
.card-cap{margin-bottom:0;box-shadow:none!important}
.card-cap::before{opacity:1}
#approach .card-cap,#partners .card-cap,#news .card-cap{--prev:#FBFBF9}
#applications .card-cap,#about .card-cap,#contact .card-cap,.key-why .card-cap{--prev:var(--paper)}
.card-cap::before{background:radial-gradient(circle at 36px 36px,transparent 35.5px,var(--prev) 36px) left top/36px 36px no-repeat,radial-gradient(circle at 0 36px,transparent 35.5px,var(--prev) 36px) right top/36px 36px no-repeat}
[data-sec]:not(#home) .sec-bar{padding-top:16px}
#home .key-why>.wrap:first-of-type{padding-top:16px}
@media (max-width:720px){.card-cap{margin-bottom:0}.card-cap::before{background:radial-gradient(circle at 24px 24px,transparent 23.5px,var(--prev) 24px) left top/24px 24px no-repeat,radial-gradient(circle at 0 24px,transparent 23.5px,var(--prev) 24px) right top/24px 24px no-repeat}[data-sec]:not(#home) .sec-bar{padding-top:12px}#home .key-why>.wrap:first-of-type{padding-top:8px}}
/* v17c more room between card edges and content */
[data-sec]:not(#home) .sec-bar{padding-top:48px}
#home .key-why>.wrap:first-of-type{padding-top:48px}
[data-sec]:not(#home){padding-bottom:84px}
#home .key-why{padding-bottom:156px}
@media (max-width:720px){[data-sec]:not(#home) .sec-bar{padding-top:28px}#home .key-why>.wrap:first-of-type{padding-top:28px}[data-sec]:not(#home){padding-bottom:56px}#home .key-why{padding-bottom:108px}}
/* v18 Get in touch (06) now comes before News (07) */
#contact{z-index:6;background:var(--paper)}#news{z-index:7;background:#FBFBF9}
#contact .card-cap{--prev:#FBFBF9}#news .card-cap{--prev:var(--paper)}
#about .card-cap{--prev:var(--paper)}
/* v19 cards with a visible bottom edge on a darker backdrop, and a sticky section label beside the dot */
body{background:#E2E2DC}
#home .hero{background:var(--paper)}
#home .key-why{border-radius:36px}
[data-sec]:not(#home){border-radius:36px;margin-top:14px}
#home .key-why{padding-bottom:120px}
[data-sec]:not(#home){padding-bottom:96px}
.card-cap,#approach .card-cap,#partners .card-cap,#news .card-cap,#applications .card-cap,#about .card-cap,#contact .card-cap{--prev:#E2E2DC}
.key-why .card-cap{--prev:var(--paper)}
.site-foot{margin-top:14px}
.cap-lbl{position:absolute;left:66px;top:34px;font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;color:var(--ink);white-space:nowrap;opacity:0;transform:translateX(-6px);transition:opacity .25s,transform .25s}
.cap-lbl b{color:var(--blue);font-weight:500;margin-right:10px}
.card-cap.show-lbl .cap-lbl{opacity:1;transform:none}
@media (max-width:720px){#home .key-why,[data-sec]:not(#home){border-radius:24px}[data-sec]:not(#home){margin-top:10px;padding-bottom:64px}#home .key-why{padding-bottom:80px}.cap-lbl{left:44px;top:21px;font-size:.68rem}}
/* v20 the card cap carries the section tile + label (replaces the dot), pinned top-left while the section scrolls */
.card-cap::after{display:none}
.card-cap{height:88px;pointer-events:auto}
.card-cap .cap-tag{position:absolute;left:32px;top:26px;margin:0}
[data-sec]:not(#home) .sec-bar{padding-top:24px}
#home .key-why>.wrap:first-of-type{padding-top:24px}
@media (max-width:720px){.card-cap{height:68px}.card-cap .cap-tag{left:20px;top:18px}.card-cap .cap-tag .tile.xs{--s:32px}[data-sec]:not(#home) .sec-bar{padding-top:16px}#home .key-why>.wrap:first-of-type{padding-top:16px}}
/* v21 pinned sections: JS sets top = viewport height - section height */
main > [data-sec].pin{position:sticky!important}
#home{position:relative;z-index:1}
/* v22 corners always show the previous card's colour: cards overlap by their corner radius, no shadows, dark backdrop only behind the last card's bottom corners (meets the footer) */
#home .key-why,[data-sec]:not(#home){box-shadow:none}
[data-sec]:not(#home){margin-top:-36px}
body{background:var(--ink)}
.site-foot{margin-top:0}
#approach .card-cap,#partners .card-cap,#contact .card-cap{--prev:#FBFBF9}
#applications .card-cap,#about .card-cap,#news .card-cap,.key-why .card-cap{--prev:var(--paper)}
@media (max-width:720px){[data-sec]:not(#home){margin-top:-24px}}
/* v23 scroll cue at the bottom of the hero: an electron dropping in a blue capsule */
.scroll-hint{position:absolute;left:50%;bottom:60px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;text-decoration:none;color:var(--blue);z-index:2}
.scroll-hint .cap{width:22px;height:36px;border:1.5px solid var(--blue);border-radius:12px;position:relative}
.scroll-hint .cap i{position:absolute;left:50%;top:7px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--blue);animation:hintDrop 1.8s cubic-bezier(.5,0,.3,1) infinite}
.scroll-hint .lbl{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em}
.scroll-hint:hover .cap{background:color-mix(in srgb,var(--blue) 8%,transparent)}
@keyframes hintDrop{0%{transform:translateY(0);opacity:0}20%{opacity:1}70%{transform:translateY(14px);opacity:1}100%{transform:translateY(16px);opacity:0}}
@media (max-width:980px){.scroll-hint{bottom:48px}}
@media (max-height:620px){.scroll-hint{display:none}}
/* v23b content scrolls right up to the card's top edge: cap is see-through except its corner fills; the tile + label ride on a small chip */
.card-cap{background:transparent;pointer-events:none}
.card-cap .cap-tag{pointer-events:auto;padding:8px 14px 8px 8px;border-radius:12px;background:color-mix(in srgb,var(--cap-bg,#FBFBF9) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);left:24px;top:18px}
#approach,#partners,#contact{--cap-bg:var(--paper)}
#applications,#about,#news,#home .key-why{--cap-bg:#FBFBF9}
@media (max-width:720px){.card-cap .cap-tag{left:12px;top:10px;padding:6px 12px 6px 6px}}
/* phones/tablets: hero content is taller than the screen, so the scroll cue sits under it instead of over it */
@media (max-width:980px){.scroll-hint{position:relative;left:auto;bottom:auto;transform:none;margin:40px auto 0;width:max-content}}
@media (max-width:980px){.hero-min{flex-direction:column}.hero-min>.wrap{width:100%}.scroll-hint{align-self:center}}
/* v24 active loop step in the hero readout is Electron Blue */
#ro-step b{color:var(--blue);font-weight:600;background:color-mix(in srgb,var(--blue) 10%,transparent);border-radius:4px;padding:1px 5px}
/* v25 no dark backdrop showing under card bottoms while a card is pinned: bottoms are square (the next card's rounded top covers the seam); only News keeps rounded bottom corners onto the footer */
#home{background:var(--paper)}
#home .key-why,[data-sec]:not(#home){border-radius:36px 36px 0 0}
#news{border-radius:36px}
@media (max-width:720px){#home .key-why,[data-sec]:not(#home){border-radius:24px 24px 0 0}#news{border-radius:24px}}
/* v26 scroll cue: electron dot trail (three blue dots falling in sequence down a thin line) */
.scroll-hint.trail{gap:0;padding:6px 14px}
.scroll-hint.trail .line{position:relative;display:block;width:2px;height:56px;background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--blue) 35%,transparent) 30%,color-mix(in srgb,var(--blue) 35%,transparent) 70%,transparent);border-radius:2px}
.scroll-hint.trail .line i{position:absolute;left:50%;top:0;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:var(--blue);opacity:0;animation:trailFall 1.8s cubic-bezier(.45,0,.55,1) infinite}
.scroll-hint.trail .line i:nth-child(2){animation-delay:.25s;width:5px;height:5px;margin-left:-2.5px}
.scroll-hint.trail .line i:nth-child(3){animation-delay:.5s;width:3px;height:3px;margin-left:-1.5px}
@keyframes trailFall{0%{transform:translateY(0);opacity:0}15%{opacity:1}75%{opacity:1}100%{transform:translateY(52px);opacity:0}}
.scroll-hint.trail:hover .line{background:color-mix(in srgb,var(--blue) 50%,transparent)}
@media (prefers-reduced-motion:reduce){.scroll-hint.trail .line i{opacity:1;animation:none}.scroll-hint.trail .line i:nth-child(2){top:20px}.scroll-hint.trail .line i:nth-child(3){top:38px}}
/* v27: tile numbers bottom-right */
.tile .z{top:auto;bottom:calc(var(--s)*.08);right:calc(var(--s)*.1)}
.el span{top:auto;bottom:1px;right:2px}
/* v28: app card rails pinned to card bottom */
.app{display:flex;flex-direction:column}
.app .bd{flex:1;display:flex;flex-direction:column}
.app .bd>.rail{margin-top:auto}
.app .bd>p{margin-bottom:6px}
/* v29: case-study teaser cards share one layout */
.grid .card.cs-mini .eyebrow{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.grid .card.cs-mini .big{white-space:nowrap;font-size:clamp(2rem,3.2vw,2.8rem)}
.grid .card.cs-mini p{min-height:3.3em}
.loopfig .n-s{font-size:10px;letter-spacing:.04em}
/* v30: legal pages + footer legal links */
.legal-links{display:inline-flex;gap:20px}
.legal-links a{color:inherit;text-decoration:none;opacity:.8}
.legal-links a:hover{opacity:1;text-decoration:underline}
.legal{max-width:760px;display:grid;gap:14px}
.legal h2{font-size:1.25rem;font-weight:600;letter-spacing:-0.01em;margin-top:22px}
.legal h2:first-child{margin-top:0}
.legal p{color:var(--ink-muted,inherit);line-height:1.65}
.legal a{color:var(--blue)}
.legal .upd{font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;margin-top:28px;opacity:.7}
/* v31: live enquiry form */
form.enq .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.fld .err{display:none;font-size:.82rem;color:#C2410C}
.fld.invalid .err{display:block}
.fld.invalid input,.fld.invalid textarea{border-color:#C2410C}
form.enq .fine{font-size:.82rem;color:var(--muted)}
form.enq .fine a{color:var(--blue)}
.ok.bad{border-color:#C2410C;background:#FFF4ED}
form.enq [hidden]{display:none!important}
/* v32: enquiry form layout fix — chip inputs were picking up the text-input sizing */
.fld .chips input{width:auto;padding:0;border:0;flex:none;margin:0}
.chips label{white-space:nowrap}
section .split.top:has(form.enq){grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
@media (max-width:900px){section .split.top:has(form.enq){grid-template-columns:1fr}}
@media (max-width:480px){.chips label{white-space:normal}}
/* v33: hiring pill on lab card */
.card-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
a.pill{text-decoration:none}
/* v34: demo videos + atom tagline */
.photo.vid{aspect-ratio:16/9;align-self:center}
.photo.vid video{display:block;width:100%;height:100%;object-fit:cover;background:var(--ink-2)}
.photo.vid.wide{max-width:none}
.site-foot .atom-line{font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-top:22px}
.site-foot .atom-line+.sign{margin-top:8px}
/* v35: agent video caption */
.vid-fig{margin:0;display:flex;flex-direction:column;gap:12px;align-self:center}
.vid-cap{font-size:.9rem;line-height:1.5;color:var(--muted);max-width:56ch}
/* v36: video controls; label moves to the top so it doesn't cover the control bar */
.photo.vid .tag{top:12px;bottom:auto;pointer-events:none}
/* v37: named LLMs in benchmark */
.bm-row{grid-template-columns:136px 1fr 72px}
.bm-row span{white-space:nowrap}
@media (max-width:520px){.bm-row{grid-template-columns:116px 1fr 62px;gap:10px;font-size:.72rem}}
/* v38: Atomic AI / Dynamic Labs overview cards in the home Approach section */
.pillars{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:56px}
.pillar{display:flex;flex-direction:column;gap:14px;padding:28px;border:1px solid var(--line);border-radius:12px;background:var(--white);color:var(--ink);text-decoration:none;transition:border-color .15s,transform .15s}
.pillar:hover{border-color:var(--blue);transform:translateY(-2px)}
.pillar .pl-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pillar h3{font-size:1.6rem;letter-spacing:-.02em}
.pillar p{color:var(--muted)}
.pillar ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;align-content:start;flex:1}
.pillar li{position:relative;padding-left:18px;font-size:.94rem}
.pillar li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:50%;background:var(--blue)}
.pillar .more{display:inline-flex;align-items:center;gap:8px;align-self:start;font-family:var(--mono);font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;padding:9px 14px;border:1.5px solid var(--blue);border-radius:999px;color:var(--blue);margin-top:6px;transition:background .15s,color .15s}
.pillar:hover .more{background:var(--blue);color:#fff}
@media (max-width:760px){.pillars{grid-template-columns:1fr}.pillar{padding:22px}}
/* v39: lab network (home panel, dot map, Dynamic Labs lab cards) */
.network{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:48px;align-items:center;margin-top:56px;padding:36px;border:1px solid var(--line);border-radius:12px;background:var(--white)}
.network .h-m{font-size:clamp(1.5rem,2.4vw,2rem);letter-spacing:-.02em}
.net-list{list-style:none;margin:0;padding:0;display:grid}
.net-list li{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.net-list li:last-child{border-bottom:1px solid var(--line)}
.net-list .tile.xs{--s:34px;font-size:13px}
.net-list b{display:block;font-weight:600;font-size:.98rem}
.net-list em{display:block;font-style:normal;font-size:.84rem;color:var(--muted)}
.more-link{font-family:var(--mono);font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--blue);text-decoration:none;align-self:start}
.more-link:hover{text-decoration:underline}
.labmap{margin:0;min-width:0}
.labmap svg{display:block;width:100%;height:auto;overflow:visible}
.labmap.compact{max-width:820px;margin:8px auto 40px}
.lm-dots{fill:none;stroke:var(--line);stroke-width:4.2;stroke-linecap:round}
.lm-arc{fill:none;stroke:var(--blue);stroke-width:1.6;stroke-dasharray:4 7;animation:lm-flow 1.6s linear infinite;opacity:.85}
.lm-arc.b{animation-duration:2.2s;opacity:.55}
@keyframes lm-flow{to{stroke-dashoffset:-22}}
.lm-pin .core{fill:var(--blue);stroke:var(--white);stroke-width:2}
.lm-pin .pulse{fill:var(--blue);opacity:0;transform-origin:center;transform-box:fill-box;animation:lm-pulse 2.4s ease-out infinite}
.lm-pin.build .core{fill:var(--white);stroke:var(--blue);stroke-width:2.5}
.lm-pin.build .pulse{animation-delay:.8s}
.lm-pin.plan .core{fill:var(--white);stroke:var(--blue);stroke-width:2;stroke-dasharray:3 2.5}
.lm-pin.plan .pulse{animation-delay:1.6s}
@keyframes lm-pulse{0%{opacity:.45;transform:scale(1)}100%{opacity:0;transform:scale(3.6)}}
.lm-pin text{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.05em;fill:var(--ink)}
.lm-pin text.st{font-size:10.5px;fill:var(--blue)}
@media (prefers-reduced-motion:reduce){.lm-arc,.lm-pin .pulse{animation:none}}
.labcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.labcard{display:flex;flex-direction:column;gap:12px;padding:26px;border:1px solid var(--line);border-radius:12px;background:var(--white)}
.labcard .lc-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.labcard h3{font-size:1.3rem;letter-spacing:-.01em}
.labcard p{color:var(--muted);font-size:.95rem}
.labcard .lc-loc{font-family:var(--mono);font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:var(--blue);margin-top:-4px}
.labcard dl{margin:4px 0 0;display:grid;gap:10px;flex:1;align-content:start}
.labcard dt{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.labcard dd{margin:2px 0 0;font-size:.93rem}
.labcard .lc-kit{font-family:var(--mono);font-size:.7rem;letter-spacing:.04em;border-top:1px solid var(--line);padding-top:12px;margin-top:4px}
@media (max-width:1000px){.labcards{grid-template-columns:1fr}}
@media (max-width:900px){.network{grid-template-columns:1fr;padding:24px;gap:28px}}
@media (max-width:520px){.lm-pin text{font-size:16px}.lm-pin text.st{font-size:14px}}
.lm-pin text{paint-order:stroke;stroke:var(--white);stroke-width:5px;stroke-linejoin:round}
.labmap.compact .lm-pin text{stroke:var(--paper)}
@media (max-width:520px){.lm-pin text{font-size:22px}.lm-pin text.st{font-size:18px}}
/* v40: Atomic AI + Dynamic Labs panels (network merged into Dynamic Labs) */
.panels{display:grid;gap:16px;margin-top:56px}
.panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:48px;align-items:center;padding:36px;border:1px solid var(--line);border-radius:12px;background:var(--white)}
.panel .pl-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.panel h3{font-size:clamp(1.6rem,2.4vw,2rem);letter-spacing:-.02em}
.panel .lede{font-size:1.02rem}
.ai-vis{margin:0;display:grid;gap:22px;min-width:0}
.ai-vis .bm{display:grid;gap:12px}
.ai-vis .bm-row i{transform-origin:left;animation:bm-grow 1.1s cubic-bezier(.2,.7,.2,1) both}
@keyframes bm-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.ai-metals{display:grid;gap:10px;padding-top:18px;border-top:1px solid var(--line)}
.ai-metals .tile{--s:56px}
@media (prefers-reduced-motion:reduce){.ai-vis .bm-row i{animation:none}}
@media (max-width:900px){.panel{grid-template-columns:1fr;padding:24px;gap:28px}}
@media (max-width:520px){.ai-metals .tile{--s:46px}.ai-metals .tiles{gap:7px!important}}

/* v41: predicted-vs-measured scatter panels (Atomic AI page) */
.scatters{display:grid;gap:34px;margin-top:8px}
.sc-key{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;align-items:baseline;margin:0}
.sc-key .mono{font-size:.74rem;color:var(--muted)}
.sc-block h4{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;margin:0 0 14px;font-size:1.05rem}
.sc-block h4 span{font-family:var(--mono);font-size:.7rem;font-weight:400;color:var(--muted);letter-spacing:.02em}
.sc-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.sc{margin:0;padding:14px 14px 8px;border:1px solid var(--line);border-radius:10px;display:grid;gap:8px}
.sc figcaption{display:flex;flex-direction:column;gap:3px}
.sc figcaption b{font-weight:500;font-size:.92rem}
.sc figcaption span{font-family:var(--mono);font-size:.7rem;color:var(--muted)}
.sc svg{display:block;width:100%;height:auto;overflow:visible}
.sc-grid line{stroke:var(--line);stroke-width:.6;opacity:.6}
.sc-frame{fill:none;stroke:var(--line);stroke-width:1}
.sc-diag{stroke:var(--ink);stroke-width:1.1;stroke-dasharray:4 4;opacity:.55}
.sc-dots circle{fill:var(--muted);fill-opacity:.75}
.sc-ax text{font-family:var(--mono);font-size:10.5px;fill:var(--muted)}
.sc.ad{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 8%,transparent)}
.sc.ad figcaption b,.sc.ad figcaption span{color:var(--blue)}
.sc.ad .sc-dots circle{fill:var(--blue);fill-opacity:.9}
.sc.ad .sc-diag{stroke:var(--blue);opacity:.8}
@media (max-width:900px){.sc-row{grid-template-columns:repeat(2,1fr)}}
@media (max-width:420px){.sc-row{gap:10px}.sc{padding:10px 10px 6px}.sc-ax text{font-size:12px}}
.sc figcaption span{display:flex;flex-wrap:wrap;gap:0 10px}
.sc figcaption span i{font-style:normal;white-space:nowrap}

/* v42: home Atomic AI overview scatter */
.sc-ov-body{display:grid;grid-template-columns:minmax(0,260px) 1fr;gap:22px;align-items:center}
.sc-ov svg{display:block;width:100%;height:auto;overflow:visible}
.sc-ov .sc-dots.llm circle{fill:var(--muted);fill-opacity:.45}
.sc-ov .sc-dots.ad circle{fill:var(--blue);fill-opacity:.95}
.sc-legend{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.sc-legend li{display:grid;grid-template-columns:14px 1fr;gap:10px;align-items:start;font-family:var(--mono);font-size:.72rem;color:var(--muted);line-height:1.45}
.sc-legend b{display:block;font-family:var(--sans,inherit);font-weight:500;font-size:.88rem;color:var(--ink);margin-bottom:2px}
.sc-legend i{width:10px;height:10px;border-radius:50%;background:var(--muted);opacity:.6;margin-top:4px}
.sc-legend li.ad i{background:var(--blue);opacity:1}
.sc-legend li.ad b{color:var(--blue)}
.sc-legend li.ln i{height:0;border-radius:0;background:none;border-top:1.5px dashed var(--ink);opacity:.55;margin-top:8px;width:14px}
@media (max-width:560px){.sc-ov-body{grid-template-columns:1fr}.sc-ov svg{max-width:300px}}
/* v43: home overview shows yield + elongation side by side, legend below */
.sc-ov-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.sc-ov-p h5{margin:0 0 8px;font-family:var(--mono);font-size:.7rem;font-weight:400;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.sc-ov .sc-legend{grid-template-columns:1fr 1fr;gap:12px 18px}
.sc-ov .sc-legend li.ln{grid-column:1/-1}
@media (max-width:560px){.sc-ov-pair{gap:10px}.sc-ov .sc-legend{grid-template-columns:1fr}}
/* v44: home Atomic AI overview cards (replace the two-chart overview) */
.ov-card{display:grid;grid-template-columns:96px 1fr;gap:18px;align-items:center;padding:16px 0;border-top:1px solid var(--line)}
.ov-card svg{width:96px;height:96px;display:block}
.ov-card h5{margin:0 0 4px;font-family:var(--mono);font-size:.7rem;font-weight:400;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.ov-big{margin:0;font-size:1rem;line-height:1.35;color:var(--ink)}
.ov-big b{display:block;font-size:2.2rem;line-height:1.05;font-weight:500;color:var(--blue);letter-spacing:-.02em}
.ov-sub{margin:6px 0 0;font-family:var(--mono);font-size:.72rem;color:var(--muted)}
.ov-sub .ad{color:var(--blue)}
.ov-note{margin:0;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-family:var(--mono);font-size:.7rem;color:var(--muted)}
.ov-note i{width:8px;height:8px;border-radius:50%;background:var(--muted);opacity:.6;display:inline-block}
.ov-note i.ad{background:var(--blue);opacity:1}
.ov-note .more-link{margin-left:auto}
.sc-ov{gap:0}.sc-ov>.eyebrow{margin-bottom:14px}
.ov-sub .nw{white-space:nowrap}
/* v45: overview aligned with the left column (same top, row rules and bottom link) */
.panel{align-items:stretch}
.sc-ov{display:flex;flex-direction:column;gap:0}
.sc-ov>.eyebrow{display:flex;align-items:center;min-height:var(--s,44px);margin:0 0 16px}
.sc-ov .ov-card{flex:1;grid-template-columns:120px 1fr;gap:24px;padding:18px 0;border-top:1px solid var(--line)}
.sc-ov .ov-card svg{width:120px;height:120px}
.ov-txt{display:grid;gap:6px}
.ov-txt h5{margin:0}
.ov-big{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin:0}
.ov-big b{display:inline;font-size:2.4rem}
.ov-big span{font-size:1rem;color:var(--ink)}
.ov-sub{margin:0}
.ov-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding-top:16px;border-top:1px solid var(--line)}
.ov-key{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-family:var(--mono);font-size:.7rem;color:var(--muted)}
.ov-key i{width:8px;height:8px;border-radius:50%;background:var(--muted);opacity:.6;display:inline-block}
.ov-key i.ad{background:var(--blue);opacity:1}
.ov-key i:not(.ad){margin-left:8px}
@media (max-width:560px){.sc-ov .ov-card{grid-template-columns:88px 1fr;gap:16px}.sc-ov .ov-card svg{width:88px;height:88px}.ov-big b{font-size:2rem}}
.ov-sub .ad{white-space:nowrap}
/* v46: overview = two graphs + one-line explanation */
.ov-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:18px 0;border-top:1px solid var(--line);flex:1;align-content:center}
.ov-pair h5{margin:0 0 10px;font-family:var(--mono);font-size:.7rem;font-weight:400;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.ov-pair svg{display:block;width:100%;height:auto;max-width:240px}
.ov-expl{margin:0 0 16px;font-size:.95rem;line-height:1.5;color:var(--muted)}
.ov-expl .ad{color:var(--blue)}
@media (max-width:560px){.ov-pair{gap:14px}}
.ov-pair .sc-diag{stroke-width:.8}.ov-pair .sc-frame{stroke-width:.8}
/* v47: home lab map centred vertically in its panel, with a caption */
.panel>.labmap:not(.compact){align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:22px;padding:0 4px 0 28px}
.lm-cap{max-width:440px;margin:0 auto;text-align:center;font-size:.95rem;line-height:1.5;color:var(--muted)}
@media (max-width:900px){.panel>.labmap:not(.compact){padding:0 0 0 16px}}
/* v48: team cards without photos (tile + name + role + bio + logos) */
.people .pcard2{display:flex;flex-direction:column;gap:14px;padding:24px 22px 22px;border:1px solid var(--line,rgba(10,11,13,.1));border-radius:14px;background:var(--paper,#fff)}
.people .pcard2 .tile{--s:64px;font-size:24px}
.people .pcard2 h3{margin:0}
.people .pcard2 p{flex:1;margin:0;font-size:.9rem;line-height:1.5}
.people .pcard2 .logos{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;padding-top:14px;border-top:1px solid var(--line,rgba(10,11,13,.1))}
.people .pcard2 .logos img{height:18px;width:auto;max-width:84px;object-fit:contain;filter:brightness(0);opacity:.6}
.people .pcard2 .logos span{font-weight:600;font-size:.82rem;letter-spacing:-0.01em;color:var(--muted);}
@media (max-width:640px){.people .pcard2{padding:18px 16px}.people .pcard2 .tile{--s:48px;font-size:18px}.people .pcard2 .logos img{height:14px;max-width:64px}}
.people .pcard2 .logos img{height:22px;max-width:100px;opacity:.65}
.theme-dark .people .pcard2 .logos img{filter:none;opacity:.85}
@media (max-width:640px){.people{grid-template-columns:1fr;gap:16px}.people .pcard2 .logos img{height:20px;max-width:92px}}
/* v49: phone pass */
@media (max-width:520px){
  .lm-pin text{transform-box:view-box}
  .lm-pin.live text:not(.st){transform:translateY(-10px)}
  .lm-pin.live text.st{transform:translateY(6px)}
  .lm-pin.build text:not(.st){transform:translateY(-14px)}
  .lm-pin.build text.st{transform:translateY(-6px)}
  .lm-pin.plan text:not(.st){transform:translate(-20px,34px)}
  .lm-pin.plan text.st{transform:translate(-20px,44px)}
}
@media (max-width:640px){
  .loopfig{display:none}
  .loopfig+.steps{margin-top:8px!important}
}
@media (max-width:640px){
  .plist{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pcard{padding:16px 14px}
  .pcard h3{font-size:.92rem}
  #contact .grid.g4{grid-template-columns:1fr}
  .card .more{white-space:nowrap}
  .post .pill{justify-self:start}
}
@media (max-width:640px){.site-foot li a{display:inline-block;padding:5px 0}}
/* v50: partner cards: every logo centred in an equal slot, optically sized (height set inline by build.py) */
.pcard{align-items:center;text-align:center}
.pcard .plogo{height:56px;width:100%;display:flex;align-items:center;justify-content:center;margin-bottom:6px}
.pcard .plogo img{width:auto;max-width:100%;margin:0;object-fit:contain;object-position:center}
.pcard .plogo .ptxt{margin:0}
@media (max-width:640px){.pcard .plogo{height:46px}.pcard .plogo img{transform:scale(.82)}}
.people .pcard2 .logos img[src$="logos/osu.png"]{max-width:190px;height:26px}
/* v51: transparent nav that folds to its section numbers when idle */
@media (min-width:1061px){
  .wrap{padding-right:calc(var(--gut-r) + 64px)}
  .side .nav a,.side .nav a:hover,.side .nav a[aria-current="page"],.side .nav a.in{background:none;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;
        text-shadow:0 0 3px var(--paper),0 0 6px var(--paper)}
  .side .nav a:hover{color:var(--ink)}
  .side .nav a[aria-current="page"],.side .nav a.in{color:var(--ink);font-weight:600}
  .side .nav a .lbl{display:inline-block;max-width:24ch;overflow:hidden;white-space:nowrap;vertical-align:bottom;transition:max-width .4s cubic-bezier(.2,.7,.2,1),opacity .3s}
  .side.folded .nav a .lbl{max-width:0;opacity:0}
  .side.folded .nav .grp a.sub{display:none}
  .side.folded .nav a{padding-inline:6px}
  .side,.theme-dark .side{background:none!important;-webkit-backdrop-filter:none;backdrop-filter:none}
}
@media (max-width:1060px){
  .side{background:color-mix(in srgb,var(--paper) 72%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);border-bottom-color:transparent}
  .theme-dark .side{background:color-mix(in srgb,#0A0B0D 72%,transparent)}
  .side .nav{background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
}
/* v52: announce bar text centred on the full bar width at every size */
.announce .wrap,.announce .wrap[class]{max-width:none;padding:9px var(--gut-r) 9px var(--gut);gap:2px 14px;align-items:baseline}
.announce span{text-wrap:balance}
.announce a{border-bottom:0;text-decoration:underline;text-decoration-color:rgba(255,255,255,.55);text-underline-offset:4px;text-decoration-thickness:1px;white-space:nowrap}
@media (max-width:640px){.announce .wrap,.announce .wrap[class]{padding-block:8px 9px;line-height:1.5}.announce span{flex-basis:100%}}
.people .pcard2 .logos img{object-fit:contain;object-position:left center}
.people .pcard2 .logos img[src$="logos/psw.png"]{height:18px}
@media (max-width:640px){.people .pcard2 .logos img[src$="logos/psw.png"]{height:16px}}
/* v53: partners hidden (build.py SHOW_PARTNERS) — keep the card colours alternating when About follows Applications */
#applications+#about,#applications+#about~#news{background:var(--paper);--cap-bg:var(--paper)}
#applications+#about~#contact{background:#FBFBF9;--cap-bg:#FBFBF9}
#applications+#about .card-cap,#applications+#about~#news .card-cap{--prev:#FBFBF9}
#applications+#about~#contact .card-cap{--prev:var(--paper)}
/* v54: X and LinkedIn icons under the footer sign-off */
.site-foot .social{display:flex;gap:10px;margin-top:24px}
.site-foot .social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--ink-line);border-radius:50%;color:var(--paper);transition:border-color .2s,color .2s,background .2s}
.site-foot .social a:hover{color:#fff;background:var(--blue);border-color:var(--blue)}
.site-foot .social svg{width:16px;height:16px;fill:currentColor;display:block}
.site-foot .social a:last-child svg{width:17px;height:17px;transform:translateY(-.5px)}
