/* Electric Lab — homepage-only presentation layer. */
body.app-ui.home-page {
  --home-bg:#f8fbff; --home-text:#14213d; --home-muted:#4d5f78;
  --home-cyan:#00c7f2; --home-cyan-action:#006c86; --home-violet:#6847f5;
  --home-violet-action:#5b2fd0; --home-magenta:#e92f87; --home-magenta-action:#b60062;
  --home-lime:#a8d92a; --home-line:#dbe7f2; --home-surface:#fff;
  background:var(--home-bg); color:var(--home-text); overflow-x:clip;
}
body.app-ui.home-page .app-header { border-bottom-color:#d7e5f0; box-shadow:0 8px 30px rgba(38,66,104,.07); }
body.app-ui.home-page .app-nav a[aria-current="page"] { border:1px solid transparent; background:linear-gradient(#fff,#fff) padding-box,linear-gradient(90deg,var(--home-cyan),var(--home-violet),var(--home-magenta)) border-box; color:var(--home-violet-action); }
body.app-ui.home-page .home-main { position:relative; isolation:isolate; width:min(1440px,calc(100% - 48px)); padding:48px 0 76px; }
body.app-ui.home-page .home-atmosphere { position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; background-image:radial-gradient(rgba(104,71,245,.12) 1px,transparent 1px); background-size:28px 28px; mask-image:linear-gradient(to bottom,#000,transparent 65%); opacity:.45; }
body.app-ui.home-page .home-atmosphere span { position:absolute; width:420px; aspect-ratio:1; border-radius:50%; opacity:.18; }
body.app-ui.home-page .home-atmosphere span:nth-child(1) { left:-220px; top:80px; background:var(--home-cyan); }
body.app-ui.home-page .home-atmosphere span:nth-child(2) { right:-250px; top:390px; background:var(--home-magenta); }
body.app-ui.home-page .home-atmosphere span:nth-child(3) { left:45%; top:760px; background:var(--home-violet); opacity:.1; }
body.app-ui.home-page .home-main > section { position:relative; z-index:1; }
body.app-ui.home-page .home-hero { grid-template-columns:minmax(0,1.12fr) minmax(380px,.88fr); gap:clamp(34px,5vw,80px); min-height:540px; padding:clamp(40px,6vw,84px); border:1px solid rgba(104,71,245,.17); border-radius:32px; background:linear-gradient(128deg,rgba(255,255,255,.98),rgba(244,251,255,.94)); box-shadow:0 24px 70px rgba(31,60,100,.12); }
body.app-ui.home-page .home-hero-copy { position:relative; z-index:2; min-width:0; max-width:790px; }
body.app-ui.home-page .eyebrow { color:var(--home-violet-action); font-weight:850; letter-spacing:.13em; }
body.app-ui.home-page .home-hero h1 { max-width:760px; color:var(--home-text); font-size:clamp(2.6rem,4.7vw,4.9rem); line-height:1.01; letter-spacing:-.045em; text-transform:none; }
body.app-ui.home-page .home-hero h1 span { color:var(--home-violet-action); background:linear-gradient(100deg,var(--home-violet-action),var(--home-magenta-action)); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
body.app-ui.home-page .hero-copy { max-width:680px; margin-top:24px; color:var(--home-muted); font-size:clamp(1rem,1.3vw,1.18rem); line-height:1.75; }
body.app-ui.home-page .actions { margin-top:32px; gap:14px; }
body.app-ui.home-page .actions .btn { min-height:48px; padding:12px 20px; border-radius:13px; font-family:inherit; font-size:.95rem; font-weight:800; letter-spacing:0; text-transform:none; box-shadow:none; }
body.app-ui.home-page .actions .home-cta-primary { border-color:var(--home-violet-action); background:linear-gradient(115deg,var(--home-violet-action),var(--home-magenta-action)); color:#fff; }
body.app-ui.home-page .actions .home-cta-secondary { border:2px solid var(--home-cyan-action); background:#fff; color:var(--home-cyan-action); }
body.app-ui.home-page .actions .btn:focus-visible, body.app-ui.home-page .module-card a:focus-visible, body.app-ui.home-page .tech-ribbon:focus-visible { outline:3px solid var(--home-cyan-action); outline-offset:4px; }
body.app-ui.home-page .molecular-engine { position:relative; z-index:1; width:min(100%,430px); aspect-ratio:1; margin:auto; pointer-events:none; }
body.app-ui.home-page .engine-halo { position:absolute; width:58%; aspect-ratio:1; border-radius:50%; opacity:.18; }
body.app-ui.home-page .engine-halo-cyan { left:2%; top:8%; background:var(--home-cyan); }
body.app-ui.home-page .engine-halo-magenta { right:0; bottom:4%; background:var(--home-magenta); }
body.app-ui.home-page .engine-orbit { position:absolute; inset:15%; border:1.5px solid rgba(91,47,208,.32); border-radius:50%; }
body.app-ui.home-page .engine-orbit-two { inset:25% 5%; transform:rotate(55deg); border-color:rgba(0,108,134,.36); }
body.app-ui.home-page .engine-orbit-three { inset:7% 31%; transform:rotate(-34deg); border-color:rgba(182,0,98,.28); }
body.app-ui.home-page .engine-core { position:absolute; inset:34%; display:grid; place-items:center; border:1px solid rgba(104,71,245,.25); border-radius:30%; background:rgba(255,255,255,.94); box-shadow:0 15px 42px rgba(104,71,245,.2); transform:rotate(8deg); }
body.app-ui.home-page .engine-core svg { width:62%; fill:none; stroke:var(--home-violet-action); stroke-width:2.5; stroke-linecap:round; transform:rotate(-8deg); }
body.app-ui.home-page .engine-node { position:absolute; display:grid; min-width:54px; min-height:54px; place-items:center; padding:8px; border:2px solid #fff; border-radius:50%; background:#fff; color:var(--home-text); box-shadow:0 8px 24px rgba(30,56,92,.16); font-size:.72rem; font-weight:900; }
body.app-ui.home-page .node-ngs { left:7%; top:18%; border-color:var(--home-cyan); } body.app-ui.home-page .node-fish { right:2%; top:29%; border-color:var(--home-magenta); }
body.app-ui.home-page .node-rna { left:15%; bottom:9%; border-color:var(--home-lime); } body.app-ui.home-page .node-idylla { right:10%; bottom:7%; border-color:var(--home-violet); }
body.app-ui.home-page .engine-signal { position:absolute; left:50%; top:-6px; width:12px; height:12px; border:3px solid #fff; border-radius:50%; background:var(--home-magenta); box-shadow:0 0 16px var(--home-magenta); }
body.app-ui.home-page .engine-link { position:absolute; width:22%; height:1px; background:linear-gradient(90deg,transparent,var(--home-cyan-action)); transform-origin:left; opacity:.45; }
body.app-ui.home-page .engine-link-one { left:25%; top:28%; transform:rotate(24deg); } body.app-ui.home-page .engine-link-two { left:56%; top:63%; transform:rotate(28deg); }
body.app-ui.home-page .tech-ribbon { margin-top:22px; overflow:hidden; border:1px solid var(--home-line); border-radius:999px; background:#fff; color:var(--home-text); box-shadow:0 8px 24px rgba(31,60,100,.07); }
body.app-ui.home-page .ribbon-track { display:flex; width:max-content; }
body.app-ui.home-page .ribbon-group { display:flex; flex:0 0 auto; min-width:min(1440px,calc(100vw - 48px)); align-items:center; justify-content:space-around; }
body.app-ui.home-page .ribbon-group > span { display:flex; flex:1 0 auto; align-items:center; justify-content:center; min-width:max-content; padding:13px 1rem; font-size:.82rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
body.app-ui.home-page .ribbon-group > span:not(:last-child)::after { content:"·"; margin-left:2rem; color:var(--home-violet-action); }
body.app-ui.home-page .workflow, body.app-ui.home-page .home-modules { padding-top:72px; }
body.app-ui.home-page .section-heading { max-width:720px; margin-bottom:26px; }
body.app-ui.home-page .section-heading h2 { color:var(--home-text); font-size:clamp(1.65rem,2.7vw,2.6rem); letter-spacing:-.025em; text-transform:none; }
body.app-ui.home-page .workflow ol { --home-workflow-axis-y:32px; position:relative; container-type:inline-size; gap:12px; }
body.app-ui.home-page .workflow ol::before { content:""; position:absolute; z-index:1; left:5%; right:5%; top:calc(var(--home-workflow-axis-y) - 2px); height:4px; border-radius:9px; background:linear-gradient(90deg,var(--home-cyan),var(--home-violet),var(--home-magenta)); pointer-events:none; }
body.app-ui.home-page .workflow ol::after { content:""; position:absolute; z-index:1; left:5%; top:calc(var(--home-workflow-axis-y) - 6px); width:12px; height:12px; border:3px solid #fff; border-radius:50%; background:var(--home-magenta); box-shadow:0 0 14px var(--home-magenta); pointer-events:none; }
body.app-ui.home-page .workflow li, body.app-ui.home-page .workflow li:first-child, body.app-ui.home-page .workflow li:last-child { position:relative; z-index:auto; min-height:112px; padding:58px 16px 18px; border:1px solid var(--home-line); border-radius:16px; background:#fff; color:var(--home-text); text-align:center; box-shadow:0 9px 24px rgba(31,60,100,.07); }
body.app-ui.home-page .workflow li:nth-child(2n) { background:#f8f6ff; } body.app-ui.home-page .workflow li:nth-child(3n) { background:#f3fbfd; }
body.app-ui.home-page .workflow li::before { z-index:2; left:50%; top:var(--home-workflow-axis-y); width:30px; height:30px; transform:translate(-50%,-50%); background:var(--home-text); color:#fff; }
body.app-ui.home-page .workflow li:not(:last-child)::after { content:none; }
body.app-ui.home-page .module-grid { grid-template-columns:repeat(12,minmax(0,1fr)); gap:20px; }
body.app-ui.home-page .module-card { --home-module:var(--home-cyan); position:relative; grid-column:span 7; min-height:280px; overflow:hidden; border:1px solid var(--home-line); border-top:5px solid var(--home-module); border-radius:22px; background:#fff; background:linear-gradient(145deg,#fff 65%,color-mix(in srgb,var(--home-module) 8%,#fff)); color:var(--home-text); box-shadow:0 14px 36px rgba(31,60,100,.09); animation:none; }
body.app-ui.home-page .module-card:nth-child(2), body.app-ui.home-page .module-card:nth-child(3) { grid-column:span 5; }
body.app-ui.home-page .module-variants { --home-module:var(--home-violet); } body.app-ui.home-page .module-atlas { --home-module:var(--home-lime); } body.app-ui.home-page .module-journal { --home-module:var(--home-magenta); }
body.app-ui.home-page .module-card > svg { width:42px; height:42px; margin-bottom:20px; padding:8px; border-radius:12px; background:color-mix(in srgb,var(--home-module) 13%,#fff); fill:none; stroke:var(--home-text); stroke-width:1.8; }
body.app-ui.home-page .module-card h3 { color:var(--home-text); font-size:1.45rem; text-transform:none; }
body.app-ui.home-page .module-card p { color:var(--home-muted); line-height:1.65; }
body.app-ui.home-page .module-card > a { color:var(--home-violet-action); }
body.app-ui.home-page .module-card > a span { display:inline-block; transition:transform .18s ease; }
body.app-ui.home-page .module-grid .card:hover, body.app-ui.home-page .module-grid .card:focus-within { border-color:var(--home-module); border-top-color:var(--home-module); background:#fff; background:linear-gradient(145deg,#fff 65%,color-mix(in srgb,var(--home-module) 8%,#fff)); color:var(--home-text); box-shadow:0 18px 40px rgba(31,60,100,.13); }
body.app-ui.home-page .journal-bubble { color:#fff; outline:2px solid #fff; }
body.app-ui.home-page .app-footer { background:#fff; color:var(--home-muted); }
@media (prefers-reduced-motion: no-preference) {
  body.app-ui.home-page .home-atmosphere span { animation:vpHomeAtmosphere 18s ease-in-out infinite alternate; }
  body.app-ui.home-page .home-atmosphere span:nth-child(2) { animation-delay:-6s; }
  body.app-ui.home-page .engine-orbit-one { animation:vpHomeOrbit 22s linear infinite; }
  body.app-ui.home-page .engine-orbit-two { animation:vpHomeOrbitTilt 28s linear infinite reverse; }
  body.app-ui.home-page .engine-node { animation:vpHomePulse 5s ease-in-out infinite; }
  body.app-ui.home-page .ribbon-track { animation:vpHomeRibbon 28s linear infinite; }
  body.app-ui.home-page .tech-ribbon:hover .ribbon-track, body.app-ui.home-page .tech-ribbon:focus .ribbon-track { animation-play-state:paused; }
  body.app-ui.home-page .workflow ol::after { animation:vpHomeWorkflow 15s linear infinite; }
}
@media (hover:hover) and (pointer:fine) {
  body.app-ui.home-page .actions .btn:hover { transform:translateY(-2px); }
  body.app-ui.home-page .module-card:hover { transform:translateY(-4px); }
  body.app-ui.home-page .module-card:hover > a span, body.app-ui.home-page .module-card:focus-within > a span { transform:translateX(5px); }
}
body.app-ui.home-page .actions .btn:active { transform:translateY(1px); }
@keyframes vpHomeAtmosphere { to { transform:translate3d(40px,24px,0); opacity:.12; } }
@keyframes vpHomeOrbit { to { transform:rotate(360deg); } }
@keyframes vpHomeOrbitTilt { from { transform:rotate(55deg); } to { transform:rotate(415deg); } }
@keyframes vpHomePulse { 50% { transform:scale(1.045); } }
@keyframes vpHomeRibbon { to { transform:translateX(-50%); } }
@keyframes vpHomeWorkflow { to { transform:translateX(calc(90cqw - 12px)); } }
@media (max-width:1100px) {
  body.app-ui.home-page .home-hero { grid-template-columns:minmax(0,1fr) 330px; padding:48px; }
  body.app-ui.home-page .module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.app-ui.home-page .module-card, body.app-ui.home-page .module-card:nth-child(2), body.app-ui.home-page .module-card:nth-child(3) { grid-column:span 1; }
}
@media (max-width:900px) {
  body.app-ui.home-page .home-hero { grid-template-columns:1fr; gap:30px; padding:42px; }
  body.app-ui.home-page .molecular-engine { width:260px; }
}
@media (max-width:760px) {
  body.app-ui.home-page .home-main { width:min(100% - 24px,1440px); padding-top:24px; }
  body.app-ui.home-page .home-hero { grid-template-columns:1fr; gap:26px; padding:34px 24px; }
  body.app-ui.home-page .home-hero h1 { font-size:clamp(2rem,9vw,3.4rem); overflow-wrap:anywhere; hyphens:auto; }
  body.app-ui.home-page .molecular-engine { display:block; width:200px; }
  body.app-ui.home-page .engine-node { min-width:42px; min-height:42px; font-size:.58rem; }
  body.app-ui.home-page .workflow ol, body.app-ui.home-page .module-grid { grid-template-columns:1fr; }
  body.app-ui.home-page .ribbon-group { min-width:calc(100vw - 24px); }
  body.app-ui.home-page .workflow ol { --home-workflow-axis-x:22px; padding-left:0; }
  body.app-ui.home-page .workflow ol::before { left:var(--home-workflow-axis-x); right:auto; top:18px; bottom:18px; width:4px; height:auto; transform:translateX(-50%); }
  body.app-ui.home-page .workflow ol::after { display:none; }
  body.app-ui.home-page .workflow li, body.app-ui.home-page .workflow li:first-child, body.app-ui.home-page .workflow li:last-child { min-height:66px; padding:20px 18px 20px 50px; text-align:left; }
  body.app-ui.home-page .workflow li::before { left:var(--home-workflow-axis-x); top:50%; transform:translate(-50%,-50%); }
}
@media (max-width:430px) {
  body.app-ui.home-page .home-hero { padding:30px 18px; border-radius:22px; }
  body.app-ui.home-page .actions { display:grid; }
  body.app-ui.home-page .actions .btn { width:100%; justify-content:center; min-height:52px; text-align:center; }
  body.app-ui.home-page .molecular-engine { width:185px; }
}
@media (prefers-reduced-motion: reduce) {
  body.app-ui.home-page *, body.app-ui.home-page *::before, body.app-ui.home-page *::after { animation:none !important; scroll-behavior:auto !important; transition:none !important; }
  body.app-ui.home-page .home-atmosphere span, body.app-ui.home-page .engine-orbit, body.app-ui.home-page .engine-node { transform:none; }
  body.app-ui.home-page .workflow ol::after { display:none; transform:none; }
  body.app-ui.home-page .engine-orbit-two { transform:rotate(55deg); } body.app-ui.home-page .engine-orbit-three { transform:rotate(-34deg); }
  body.app-ui.home-page .tech-ribbon { overflow:hidden; border-radius:18px; }
  body.app-ui.home-page .ribbon-track { width:100%; max-width:100%; transform:none; }
  body.app-ui.home-page .ribbon-group[aria-hidden="true"] { display:none; }
  body.app-ui.home-page .ribbon-group { width:100%; min-width:0; max-width:100%; flex:1 1 100%; flex-wrap:wrap; }
  body.app-ui.home-page .ribbon-group > span { min-width:0; flex:1 1 auto; }
}
@media (forced-colors:active) {
  body.app-ui.home-page .home-atmosphere, body.app-ui.home-page .engine-halo { display:none; }
  body.app-ui.home-page .module-card, body.app-ui.home-page .workflow li, body.app-ui.home-page .actions .btn { border:2px solid CanvasText; }
  body.app-ui.home-page .home-hero h1 span { background:none; -webkit-text-fill-color:LinkText; color:LinkText; }
}
