/* Homepage "three pillars" layout. Scoped .pl-*; tokens only (Meridian). Reuses .pt-sec/.pt-head/.pt-eyebrow from pitch.css, never overrides them.
 * Animations start only when JS adds .pl-on (element in view) and are fully off under prefers-reduced-motion; without JS everything is visible and static. */
.pl-page{--pl-line:var(--glass-border,var(--lx-glass-border));--pl-card:var(--lx-bg-solid);--pl-soft:color-mix(in srgb,var(--text-accent) 9%,transparent);--pl-t:10s}
.pl-js .pl-rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.pl-js .pl-rv.pl-on{opacity:1;transform:none}
.pl-sub{margin:0 auto;max-width:62ch;text-align:center;color:var(--text-2);font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.6}

/* each pillar sits on its own panel */
.pl-sec{padding-block:clamp(.8rem,2vw,1.4rem)}
.pl-panel{padding:clamp(1.3rem,3.4vw,3rem);border:1px solid var(--pl-line);border-radius:var(--lx-r-2xl,28px);background:color-mix(in srgb,var(--text-accent) 4%,var(--lx-bg-solid));box-shadow:0 1px 0 color-mix(in srgb,var(--lx-bg-solid) 80%,transparent) inset,0 18px 40px -26px color-mix(in srgb,var(--text-1) 35%,transparent)}
.pl-panel .pl-vis{background:var(--lx-bg-sunk)}
.pl-panel .pl-p2head{margin-bottom:0}
.pl-proud{display:flex;justify-content:center;margin:clamp(1.2rem,3vw,2rem) 0 0;font-size:clamp(1.05rem,2vw,1.3rem)}
.pl-pill{display:inline-flex;align-items:center;gap:.55rem;padding:.35rem 1.2rem .35rem 1rem;border:1px solid var(--pl-line);border-radius:999px;background:var(--pl-card);box-shadow:0 8px 22px -14px color-mix(in srgb,var(--text-1) 40%,transparent)}
.pl-proud .pt-h1__who{font-family:var(--f-display);font-size:1.45em;line-height:1}
.pl-hint{display:flex;justify-content:center;margin:0 0 1.4rem}
.pl-hint .pl-pill{padding:.45rem 1.1rem;font:600 .86rem/1.35 var(--f-body);color:var(--text-accent);background:var(--pl-soft);border-color:color-mix(in srgb,var(--text-accent) 35%,transparent);box-shadow:none;text-align:center}
.pl-heart{width:1.3em;height:1.3em;fill:#d6293e;transform-origin:center}
.pl-on .pl-heart{animation:pl-beat 1.6s ease-in-out infinite}
@keyframes pl-beat{0%,40%,100%{transform:scale(1)}15%{transform:scale(1.18)}30%{transform:scale(1.04)}}
/* pillar frame */
.pl-pillar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(1.4rem,4vw,3.5rem);align-items:center}
.pl-pillar--flip .pl-copy{order:2}
.pl-num{font:600 .75rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-accent);margin:0 0 .7rem}
.pl-copy h2{margin:0 0 .8rem;font-family:var(--f-display);font-weight:400;font-size:clamp(1.7rem,3.2vw,2.6rem);line-height:1.12;color:var(--text-1);text-wrap:balance}
.pl-copy p.pl-lead{margin:0 0 1rem;color:var(--text-2);font-size:clamp(1rem,1.3vw,1.1rem);line-height:1.6}
.pl-list{list-style:none;margin:0 0 1.2rem;padding:0;display:grid;gap:.55rem}
.pl-list li{position:relative;padding-left:1.4rem;color:var(--text-2);line-height:1.5;font-size:.95rem}
.pl-list li::before{content:"";position:absolute;left:0;top:.5em;width:.55rem;height:.55rem;border-radius:50%;background:var(--text-accent)}
.pl-more{font-weight:600;color:var(--text-accent);text-decoration:none}.pl-more:hover{text-decoration:underline}
.pl-vis{position:relative;padding:clamp(1rem,2.4vw,1.6rem);border:1px solid var(--pl-line);border-radius:var(--lx-r-2xl,28px);background:linear-gradient(145deg,var(--pl-card),var(--pl-soft));overflow:hidden}
.pl-ill{display:block;margin:.8rem 0 0;font-size:.75rem;color:var(--text-3);text-align:center}

/* pillar 1: chat + ring */
.pl-care{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:start}
.pl-chat{display:grid;gap:.55rem}
.pl-bub{max-width:88%;padding:.6rem .85rem;border-radius:14px;font-size:.86rem;line-height:1.4;border:1px solid var(--pl-line);background:var(--pl-card);color:var(--text-1)}
.pl-bub small{display:block;font:600 .62rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);margin-bottom:.25rem}
.pl-bub--me{justify-self:end;background:var(--text-accent);color:var(--lx-t-inv,#fff);border-color:transparent}.pl-bub--me small{color:inherit;opacity:.8}
.pl-bub--sys{justify-self:center;max-width:100%;background:var(--pl-soft);color:var(--text-accent);font-weight:600;border-style:dashed}
.pl-ring{width:104px;text-align:center}
.pl-ring svg{width:104px;height:104px;transform:rotate(-90deg)}
.pl-ring circle{fill:none;stroke-width:9}.pl-ring .bg{stroke:var(--pl-line)}.pl-ring .fg{stroke:var(--text-accent);stroke-linecap:round;stroke-dasharray:289;stroke-dashoffset:289}
.pl-ring b{display:block;margin-top:.3rem;font:600 .7rem var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-2)}
.pl-team{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem}
.pl-team span{padding:.28rem .7rem;border-radius:999px;border:1px solid var(--pl-line);font-size:.78rem;color:var(--text-2);background:var(--pl-card)}
.pl-on .pl-bub{animation:pl-bub var(--pl-t) ease infinite;animation-delay:calc(var(--d)*1.3s)}
.pl-on .pl-ring .fg{animation:pl-ring var(--pl-t) ease infinite}
.pl-on .pl-team span{animation:pl-glow 6s ease-in-out infinite}.pl-on .pl-team span:nth-child(2){animation-delay:1.5s}.pl-on .pl-team span:nth-child(3){animation-delay:3s}.pl-on .pl-team span:nth-child(4){animation-delay:4.5s}
@keyframes pl-bub{0%{opacity:0;transform:translateY(12px)}8%,82%{opacity:1;transform:none}92%,100%{opacity:0;transform:translateY(-6px)}}
@keyframes pl-ring{0%{stroke-dashoffset:289}50%,85%{stroke-dashoffset:62}100%{stroke-dashoffset:289}}

/* pillar 2 */
.pl-p2head{max-width:760px;margin:0 auto clamp(1.4rem,3vw,2.2rem);text-align:center}
.pl-layer{display:flex;align-items:center;gap:.8rem;margin:1.8rem 0 .9rem;font:600 .75rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-accent)}
.pl-layer::after{content:"";flex:1;height:1px;background:var(--pl-line)}
.pl-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.pl-card{min-width:0;display:flex;flex-direction:column;padding:clamp(1.1rem,2vw,1.5rem);border:1px solid var(--pl-line);border-radius:var(--lx-r-xl,24px);background:var(--pl-card);transition:border-color .25s,transform .25s}
.pl-card:hover{border-color:var(--text-accent);transform:translateY(-3px)}
.pl-card h3{margin:0 0 .35rem;font-size:1.15rem;color:var(--text-1)}
.pl-card p{margin:0 0 1rem;color:var(--text-2);font-size:.93rem;line-height:1.55}
.pl-card .pl-mini{margin-top:auto;padding:.9rem;border-radius:16px;background:var(--lx-bg-sunk);min-height:176px}
.pl-card .pl-more{display:inline-block;margin-top:.9rem;font-size:.88rem}
/* ingestion rows */
.pl-row{display:grid;grid-template-columns:1fr 34px 1fr;align-items:center;gap:.3rem;margin-bottom:.4rem;font-size:.78rem}
.pl-row i{font-style:normal;padding:.32rem .55rem;border-radius:8px;border:1px solid var(--pl-line);background:var(--pl-card);color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .3s}
.pl-row u{display:block;height:2px;background:var(--pl-line);position:relative;text-decoration:none}
.pl-row u::after{content:"";position:absolute;left:0;top:-2px;width:6px;height:6px;border-radius:50%;background:var(--text-accent);opacity:0}
.pl-on .pl-row i,.pl-on .pl-row u::after{animation:pl-row var(--pl-t) ease infinite;animation-delay:calc(var(--d)*2s)}
.pl-on .pl-row u::after{animation-name:pl-dot}
@keyframes pl-row{0%,22%,100%{border-color:var(--pl-line);color:var(--text-2);background:var(--pl-card)}4%,16%{border-color:var(--text-accent);color:var(--text-accent);background:var(--pl-soft)}}
@keyframes pl-dot{0%{left:0;opacity:0}3%{opacity:1}14%{left:calc(100% - 6px);opacity:1}18%,100%{left:calc(100% - 6px);opacity:0}}
/* agent builder */
.pl-prompt{overflow:hidden;font:500 .78rem/1.4 var(--f-mono);padding:.55rem .7rem;border-radius:10px;border:1px solid var(--pl-line);background:var(--pl-card);color:var(--text-1);min-height:2.6em}
.pl-prompt span{display:inline-block;overflow:hidden;white-space:nowrap;vertical-align:bottom;width:100%;max-width:100%}
.pl-built{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;margin-top:.6rem}
.pl-built b{padding:.45rem .5rem;border-radius:10px;border:1px solid var(--text-accent);background:var(--pl-soft);color:var(--text-accent);font:600 .7rem/1.2 var(--f-body);text-align:center}
.pl-on .pl-prompt span{animation:pl-type var(--pl-t) steps(38) infinite}
.pl-on .pl-built b{animation:pl-pop var(--pl-t) ease infinite;animation-delay:calc(var(--d)*.5s)}
@keyframes pl-type{0%{width:0}40%,90%{width:100%}100%{width:0}}
@keyframes pl-pop{0%,40%{opacity:0;transform:scale(.8)}50%,88%{opacity:1;transform:none}96%,100%{opacity:0}}
/* reasoning chain */
.pl-chain{display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem;position:relative}
.pl-chain::before{content:"";position:absolute;left:8%;right:8%;top:17px;height:2px;background:var(--pl-line)}
.pl-chain::after{content:"";position:absolute;left:8%;top:17px;height:2px;width:0;background:var(--text-accent)}
.pl-on .pl-chain::after{animation:pl-grow var(--pl-t) ease infinite}
.pl-cn{position:relative;z-index:1;text-align:center;font-size:.68rem;line-height:1.25;color:var(--text-2)}
.pl-cn s{display:block;width:36px;height:36px;margin:0 auto .35rem;border-radius:50%;border:2px solid var(--pl-line);background:var(--pl-card);text-decoration:none;line-height:32px;font:700 .8rem var(--f-mono);color:var(--text-3)}
.pl-on .pl-cn s{animation:pl-lit var(--pl-t) ease infinite;animation-delay:calc(var(--d)*1.6s)}
.pl-ev{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.9rem;justify-content:center}
.pl-ev span{padding:.22rem .55rem;border-radius:999px;background:var(--pl-soft);color:var(--text-accent);font-size:.68rem;font-weight:600}
.pl-on .pl-ev span{animation:pl-pop var(--pl-t) ease infinite;animation-delay:calc(var(--d)*.4s + 3s)}
@keyframes pl-grow{0%{width:0}60%,90%{width:84%}100%{width:0}}
@keyframes pl-lit{0%,100%{border-color:var(--pl-line);background:var(--pl-card);color:var(--text-3)}6%,85%{border-color:var(--text-accent);background:var(--text-accent);color:var(--lx-t-inv,#fff)}}
/* HMIS modes */
.pl-modes{position:relative;min-height:150px}
.pl-mode{position:absolute;inset:0;display:grid;align-content:center;gap:.5rem}
.pl-mode>small{font:600 .65rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}
.pl-mods{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem}
.pl-mods span{padding:.4rem .3rem;border-radius:9px;border:1px solid var(--pl-line);background:var(--pl-card);text-align:center;font-size:.7rem;color:var(--text-2)}
.pl-mic{display:flex;align-items:center;gap:3px;height:22px}
.pl-mic i{display:block;width:4px;height:6px;border-radius:2px;background:var(--text-accent)}
.pl-on .pl-mic i{animation:pl-wave 1s ease-in-out infinite;animation-delay:calc(var(--d)*.12s)}
@keyframes pl-wave{50%{height:20px}}
.pl-stack{display:grid;gap:.35rem}
.pl-stack b{padding:.5rem;border-radius:10px;border:1px dashed var(--pl-line);text-align:center;font:600 .72rem var(--f-body);color:var(--text-2)}
.pl-stack b.me{border:1px solid var(--text-accent);background:var(--pl-soft);color:var(--text-accent)}
.pl-on .pl-mode--a{animation:pl-swap 9s ease infinite}.pl-on .pl-mode--b{animation:pl-swap 9s ease infinite;animation-delay:-4.5s}
@keyframes pl-swap{0%,44%{opacity:1;transform:none}48%,92%{opacity:0;transform:translateY(6px)}96%,100%{opacity:1;transform:none}}
.pl-js .pl-mode--b{opacity:0}

/* pillar 3: box */
.pl-box{width:100%;height:auto;display:block}
.pl-box text{font-family:var(--f-body);fill:var(--text-1);text-anchor:middle}
.pl-bx-eq{fill:var(--pl-card);stroke:var(--pl-line);stroke-width:1.5}
.pl-bx-w{fill:none;stroke:var(--pl-line);stroke-width:2;stroke-dasharray:4 6}
.pl-bx-main{fill:var(--pl-soft);stroke:var(--text-accent);stroke-width:2}
.pl-bx-rec{fill:var(--text-accent)}.pl-bx-rec~text{fill:var(--lx-t-inv,#fff)}
.pl-bx-dot{fill:var(--text-accent)}
.pl-bx-led{fill:var(--text-accent)}
.pl-on .pl-bx-led{animation:pl-blink 1.6s ease-in-out infinite}
.pl-on .pl-bx-ring{animation:pl-ping 2.6s ease-out infinite;transform-box:fill-box;transform-origin:center}
.pl-bx-ring{fill:none;stroke:var(--text-accent);stroke-width:2}
@keyframes pl-blink{50%{opacity:.2}}
@keyframes pl-ping{0%{opacity:.7;transform:scale(.9)}100%{opacity:0;transform:scale(1.5)}}

/* scene strip */
.pl-scene{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;position:relative;max-width:1000px;margin:0 auto}
.pl-step{position:relative;padding:1.1rem 1rem;border:1px solid var(--pl-line);border-radius:18px;background:var(--pl-card);opacity:.55;transition:opacity .4s,border-color .4s,box-shadow .4s}
.pl-step.on{opacity:1;border-color:var(--text-accent);box-shadow:0 0 0 4px var(--pl-soft)}
.pl-step b{display:block;font:600 .7rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-accent);margin-bottom:.45rem}
.pl-step p{margin:0;font-size:.88rem;line-height:1.45;color:var(--text-2)}
.pl-bar{grid-column:1/-1;height:3px;border-radius:2px;background:var(--pl-line);overflow:hidden;order:-1}
.pl-bar i{display:block;height:100%;width:25%;background:var(--text-accent);transition:width .6s ease}
.pl-noscript .pl-step{opacity:1}

/* proof strip */
.pl-proof{display:grid;gap:1rem;justify-items:center;text-align:center}
.pl-proof{justify-items:stretch}
.pl-proof>*{min-width:0;max-width:100%}
.pl-proof .gen-infra__gov{opacity:1;transform:none}
.pl-proof .gen-infra__gov-label{font-size:.78rem}
.pl-proof .gen-proof-mini{grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:1rem 1.5rem}

@media(max-width:860px){
  .pl-pillar,.pl-grid2{grid-template-columns:minmax(0,1fr)}
  .pl-pillar--flip .pl-copy{order:0}
  .pl-scene{grid-template-columns:1fr 1fr}
  .pl-care{grid-template-columns:1fr}.pl-ring{justify-self:center}
}
@media(max-width:480px){.pl-scene{grid-template-columns:1fr}.pl-row{grid-template-columns:1fr 20px 1fr;font-size:.68rem}.pl-row i{padding:.3rem .4rem}.pl-panel{padding:1.1rem}}
@media(prefers-reduced-motion:reduce){
  .pl-page *,.pl-page *::before,.pl-page *::after{animation:none!important;transition:none!important}
  .pl-js .pl-rv{opacity:1;transform:none}.pl-js .pl-mode--b{opacity:1}.pl-mode{position:static;margin-bottom:.8rem}.pl-modes{min-height:0}
  .pl-ring .fg{stroke-dashoffset:62}.pl-chain::after{width:84%}.pl-prompt span{width:100%}
}
.pl-why{margin:0 auto 1.4rem;max-width:52ch;text-align:center;display:grid;gap:1rem;justify-items:center}
.pl-why__q{margin:0;font:italic 400 clamp(1.05rem,2vw,1.3rem)/1.5 var(--f-serif,Georgia,serif);color:var(--text-2,inherit);text-wrap:balance}
.pl-why__q s{text-decoration:none;position:relative;color:var(--text-3,#8a8494);white-space:nowrap}
.pl-why__q s::after{content:"";position:absolute;left:-2px;right:-2px;top:55%;height:2px;border-radius:2px;background:#c2410c;transform:scaleX(0);transform-origin:left}
.pl-why__q mark{background:linear-gradient(transparent 58%,rgba(124,58,237,.22) 58%);color:var(--text-accent);font-style:normal;font-weight:600;padding:0 .15em;margin-right:-.15em;border-radius:3px;font-family:var(--f-sans,inherit)}
.pl-why__q em.pt-hl{font-weight:600;padding-right:0;margin-right:0}
.pl-on .pl-why__q s::after{animation:pl-strike .7s .5s ease forwards}.pl-on .pl-why__q s+s::after,.pl-on .pl-why__q s:nth-of-type(2)::after{animation-delay:.9s}
.pl-why__a{margin:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem .8rem}
.pl-why__say{font:600 .72rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-accent);padding:.45rem .8rem;border:1px dashed var(--text-accent);border-radius:999px;background:rgba(124,58,237,.06)}
.pl-why__arr{width:26px;height:14px;fill:none;stroke:var(--text-accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pl-on .pl-why__arr{animation:pl-nudge 1.6s ease-in-out infinite}
.pl-why__do{display:inline-block;text-align:center;line-height:1.4;max-width:100%;font:600 .72rem var(--f-sans,inherit);color:#fff;padding:.3rem .75rem;border-radius:999px;background:linear-gradient(110deg,#6b3f8e,#9b5de5 45%,#6b3f8e);background-size:200% 100%;box-shadow:0 3px 10px -6px rgba(107,63,142,.6)}
.pl-why__do i{font-style:normal;opacity:.7;margin-inline:.35rem}
.pl-why__do svg{width:11px;height:11px;fill:#ffe08a;vertical-align:-2px;margin-right:.5rem}
.pl-on .pl-why__do{animation:pl-shine 4s linear infinite}.pl-on .pl-why__do svg{animation:pl-twinkle 2.2s ease-in-out infinite}
@keyframes pl-strike{to{transform:scaleX(1)}}
@keyframes pl-nudge{50%{transform:translateX(5px)}}
@keyframes pl-shine{to{background-position:-200% 0}}
@keyframes pl-twinkle{50%{transform:scale(1.3) rotate(20deg);opacity:.7}}
@media(prefers-reduced-motion:reduce){.pl-why__q s::after{transform:scaleX(1)!important;animation:none!important}.pl-why__arr,.pl-why__do,.pl-why__do svg{animation:none!important}}
.pt-hero__card .pl-why{margin-bottom:1.2rem}
.pl-bridge{margin:0 auto 1.4rem;max-width:62ch;text-align:center;display:grid;gap:.4rem;justify-items:center}
.pl-bridge__art{width:min(220px,60%);height:auto;overflow:visible}
.pl-bridge__art .arc{fill:none;stroke:var(--text-accent);stroke-width:1.6;stroke-dasharray:4 5;stroke-linecap:round;opacity:.65}
.pl-bridge__art .n{fill:var(--text-accent)}
.pl-bridge__art .dot{fill:#e0793a;filter:drop-shadow(0 0 4px rgba(224,121,58,.8))}
.pl-bridge__t{margin:0;font-size:clamp(1rem,1.9vw,1.22rem);line-height:1.75;color:var(--text-2,inherit);text-wrap:balance}
.pl-bridge__who{font-family:var(--f-serif,Georgia,serif);font-style:italic;font-weight:600;font-size:1.12em;color:var(--text-accent)}
.pl-bridge__t mark{font-weight:600;border-radius:999px;padding:.08em .65em;white-space:nowrap}
.pl-bridge__a{background:rgba(124,58,237,.12);color:var(--text-accent)}
.pl-bridge__b{background:rgba(224,121,58,.16);color:#b4531a}
.pl-bridge__t em{font-style:normal;font-weight:600;color:var(--text-1,inherit);border-bottom:2px solid rgba(124,58,237,.35)}
@media(max-width:480px){.pl-bridge__t mark{white-space:normal}}
@media(prefers-reduced-motion:reduce){.pl-bridge__art .dot{display:none}}
.pt-hero__card .pl-why .pl-why__do{font-size:.72rem}
.pt-hero__card .pl-why .pl-hint{margin:0}
.pt-hero__card .pl-why{max-width:none;width:100%}.pt-hero__card .pl-why__q{max-width:52ch}
.pl-card--wide{grid-column:1/-1}
