/* Jensy site stylesheet. Tokens follow brand/jensy/brand-board.png. */
:root{--violet:#32216c;--ink:#17132c;--night:#0d0b1d;--deep:#1b143b;--purple:#7042dc;--lav:#f0ecff;--coral:#f26b49;--gold:#f8c95a;--muted:#6c6980;--line:#e9e6f1;--paper:#fbfaff;--white:#fff;--green:#1a9c7c}
    *{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--ink);font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,p{margin:0}h1,h2,h3,.wordmark{font-family:Manrope,Inter,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #f8ba68;outline-offset:4px}::selection{background:#dbcaff;color:#23134d}.container{max-width:1190px;margin:auto;padding:0 28px}
    .announcement{background:#201344;color:#e8ddff;text-align:center;padding:10px 18px;font-size:12px;font-weight:600;letter-spacing:.02em}.announcement span{color:#ffd075}.announcement a{text-decoration:underline;text-underline-offset:3px}
    .nav-wrap{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border-bottom:1px solid rgba(42,28,84,.08)}.nav{height:77px;display:flex;align-items:center;justify-content:space-between;gap:24px}.wordmark{font-size:31px;letter-spacing:-2.2px;font-weight:800;line-height:1;color:var(--violet)}.wordmark span{color:var(--coral)}.navlinks{display:flex;gap:34px;align-items:center;font-size:13px;font-weight:700;color:#4c4761}.navlinks a:hover,.footer a:hover{color:var(--purple)}.nav-cta{background:var(--violet);color:white;padding:12px 19px;border-radius:10px;border:0;font-weight:700;font-size:12px;transition:transform .2s,background .2s}.nav-cta:hover,.btn-primary:hover{background:#5533ad;transform:translateY(-2px)}.mobile-toggle{display:none;border:0;background:none;padding:8px;color:#241546}
    .hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 80% 23%,#f0eafe 0%,transparent 41%),linear-gradient(180deg,#fff 35%,#faf8ff 100%)}.hero .container{padding-top:94px;padding-bottom:96px;display:grid;grid-template-columns:46% 54%;align-items:center;gap:12px}.eyebrow{display:inline-flex;align-items:center;gap:9px;color:#6232cb;font-size:11px;text-transform:uppercase;letter-spacing:.16em;font-weight:800}.eyebrow .mini{width:8px;height:8px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 4px #ffe8e0}.hero h1{font-size:clamp(48px,5.4vw,74px);letter-spacing:-.07em;line-height:1.095;margin:27px 0 23px;max-width:640px;font-weight:800}.hero h1 em{font-style:normal;background:linear-gradient(110deg,var(--purple),#a174ff);-webkit-background-clip:text;color:transparent}.hero p{font-size:17px;line-height:1.75;color:#6a647c;max-width:510px}.hero-buttons{display:flex;align-items:center;gap:12px;margin-top:32px;flex-wrap:wrap}.btn{border-radius:11px;padding:15px 20px;display:inline-flex;align-items:center;justify-content:center;gap:11px;font-weight:800;font-size:13px;transition:all .2s;border:1px solid transparent}.btn-primary{color:#fff;background:var(--purple);box-shadow:0 8px 22px rgba(112,66,220,.2)}.btn-secondary{background:#fff;border-color:#dad4e8;color:#291854}.btn-secondary:hover{border-color:#8d69e3;background:#f9f6ff}.proof-line{margin-top:30px;display:flex;align-items:center;gap:11px;font-size:12px;color:#767087}.proof-line .orb{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#e9e0ff;color:#6135c8;font-weight:bold}.hero-visual{position:relative;min-width:0;padding:10px 0 10px 18px}.hero-glow{position:absolute;width:90%;height:82%;right:-6%;top:9%;background:linear-gradient(130deg,rgba(168,131,245,.22),rgba(255,176,144,.18));filter:blur(40px);border-radius:40%;pointer-events:none}.app-window{position:relative;background:#fff;border:1px solid #e8e3f1;border-radius:17px;overflow:hidden;box-shadow:0 35px 90px rgba(35,20,81,.15),0 4px 20px rgba(35,20,81,.05);display:grid;grid-template-columns:142px 1fr;transform:perspective(1200px) rotateY(-5deg) rotateX(2deg);transform-origin:center center}.app-sidebar{background:#201644;padding:20px 13px;color:#cfc6ea;min-height:424px;display:flex;flex-direction:column;gap:8px}.app-sidebar .wordmark{color:white;font-size:24px;margin:2px 0 28px 9px}.app-sidebar .side-item{display:flex;align-items:center;gap:10px;padding:10px 9px;font-size:10px;font-weight:600;border-radius:7px;white-space:nowrap}.side-item.active{background:#6d44c0;color:white}.side-item svg{width:14px;height:14px;flex-shrink:0}.app-sidebar .side-label{font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:#867ca6;margin:25px 9px 5px}.app-main{min-width:0;padding:25px 24px 23px;background:#fff}.window-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.window-top h3{font-size:16px;letter-spacing:-.035em}.window-top small{color:#9590a0;font-size:9px}.avatar{background:#e9e0ff;color:#55319f;border-radius:50%;height:27px;width:27px;display:grid;place-items:center;font-size:9px;font-weight:800}.app-sub{color:#878294;font-size:10px;margin:6px 0 20px}.app-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.metric{border:1px solid #eeeaf5;border-radius:9px;padding:11px 10px;min-width:0}.metric small{display:block;color:#888398;font-size:8px;font-weight:700}.metric strong{font-size:17px;display:block;letter-spacing:-.04em;margin-top:7px}.metric b{font-size:8px;color:var(--green);font-weight:700}.chart-box{border:1px solid #eeeaf5;border-radius:10px;margin-top:13px;padding:13px}.chart-heading{display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:800}.chart-heading span{font-size:8px;color:#8d879d;font-weight:500}.chart-box svg{width:100%;height:91px;margin-top:7px}.agent-card{display:flex;gap:10px;align-items:flex-start;background:#f6f2ff;border:1px solid #ebe2ff;padding:12px;border-radius:10px;margin-top:13px}.agent-ico{background:#6e3ed8;color:white;width:27px;height:27px;flex-shrink:0;display:grid;place-items:center;border-radius:8px;font-size:15px}.agent-card strong{font-size:9px}.agent-card p{font-size:9px;line-height:1.5;color:#6e6481;margin-top:3px}.agent-card span{color:#6233cc;font-weight:800}.floating-note{position:absolute;right:-30px;bottom:-19px;background:white;border:1px solid #ebe6f1;border-radius:12px;padding:13px 16px;display:flex;align-items:center;gap:11px;box-shadow:0 15px 40px #25154d20;transform:rotate(3deg)}.floating-note .check{background:#dcf8eb;border-radius:9px;padding:9px;color:#18996b}.floating-note strong{font-size:11px;display:block}.floating-note small{color:#797388;font-size:9px}
    .section{padding:105px 0}.center{text-align:center}.section-kicker{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#7243da;font-weight:800}.section-title{font-size:clamp(33px,3.6vw,48px);letter-spacing:-.055em;line-height:1.17;margin-top:17px;font-weight:800}.section-desc{color:#777184;line-height:1.8;font-size:15px;max-width:650px;margin:17px auto 0}.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:52px}.step{position:relative;border:1px solid #ece8f3;border-radius:17px;padding:22px 19px 25px;min-height:198px;background:#fff}.step:nth-child(4){border-color:#f8d7cb;background:#fffaf8}.step-number{color:#a8a1b4;font-size:10px;font-weight:800;letter-spacing:.08em}.step-icon{width:41px;height:41px;border-radius:11px;display:grid;place-items:center;background:#f1ebff;color:#693bd5;margin:18px 0}.step:nth-child(4) .step-icon{background:#ffe7de;color:#e45c3b}.step h3{font-size:14px;margin-bottom:8px}.step p{font-size:11px;line-height:1.65;color:#797387}.step:not(:last-child):after{content:'→';position:absolute;right:-14px;top:90px;background:#fff;border-radius:50%;padding:2px 5px;font-size:15px;color:#a99abf;z-index:2}.memory-rail{margin-top:20px;border-radius:13px;background:#f5f0ff;color:#5134a0;padding:15px 20px;display:flex;justify-content:center;align-items:center;gap:10px;font-size:12px;font-weight:700}
    .feature-band{background:#100d24;color:#fff;overflow:hidden}.feature-grid{display:grid;grid-template-columns:43% 57%;gap:55px;align-items:center;padding:100px 0}.feature-grid.reverse{grid-template-columns:55% 45%}.feature-copy h2{font-size:clamp(35px,3.6vw,46px);line-height:1.18;letter-spacing:-.055em;margin:19px 0}.feature-copy p{font-size:15px;color:#b9b3ce;line-height:1.8;max-width:490px}.feature-list{display:grid;gap:15px;margin-top:27px}.feature-list li{display:flex;gap:12px;align-items:flex-start;color:#eeeaf7;font-size:13px;list-style:none;line-height:1.6}.feature-list svg{color:#bba3ff;flex-shrink:0;margin-top:2px}.small-link{display:inline-flex;align-items:center;gap:10px;color:#cdb6ff;font-size:13px;font-weight:800;margin-top:32px}.small-link:hover{color:#fff}.dark-showcase{background:#1b1634;border:1px solid #393053;border-radius:17px;padding:18px;box-shadow:0 30px 80px #05030b66}.dark-topline{display:flex;align-items:center;justify-content:space-between;color:#cfc8e5;font-size:11px;padding:5px 4px 18px}.pill{border-radius:99px;padding:6px 10px;background:#213c36;color:#7ee5bd;font-size:9px;font-weight:800}.campaign-row{background:#28213f;border:1px solid #3a3151;border-radius:11px;padding:15px;margin-bottom:10px;display:flex;align-items:center;gap:12px}.campaign-row .icon-square{height:37px;width:37px;border-radius:10px;display:grid;place-items:center;background:#402d6d;color:#dcc6ff;flex-shrink:0}.campaign-row strong{display:block;font-size:11px}.campaign-row small{display:block;color:#a39ab9;font-size:9px;margin-top:4px}.campaign-row .right{margin-left:auto;white-space:nowrap;font-size:9px;color:#89d4b1;font-weight:800}.campaign-row .right.pending{color:#f8cb77}.action-panel{background:#f9f7ff;color:#241943;border-radius:12px;padding:18px;margin-top:17px}.action-panel .panel-label{font-size:10px;font-weight:800;color:#6944b3;letter-spacing:.06em}.action-panel h4{font-size:14px;margin:9px 0 6px}.action-panel p{font-size:10px;color:#77718c;line-height:1.5}.action-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:18px;gap:8px}.action-bottom small{color:#7a7390;font-size:9px}.action-bottom button{background:#7243da;color:#fff;border:0;border-radius:7px;padding:9px 12px;font-size:10px;font-weight:800}.action-bottom button:hover{background:#5830b4}.approval-state{font-size:10px;color:#09845d;margin-top:10px;display:none}.approval-state.show{display:block}
    .memory-section{background:#faf9fe}.memory-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:75px}.memory-demo{background:#fff;border:1px solid #eae6f2;border-radius:17px;box-shadow:0 22px 60px #2b175015;padding:20px}.memory-demo-head{display:flex;gap:9px;align-items:center;padding-bottom:15px;border-bottom:1px solid #eeeaf2;font-weight:800;font-size:12px}.memory-demo-head .dot{width:10px;height:10px;background:#7952df;border-radius:50%;box-shadow:0 0 0 4px #eee8ff}.query{background:#f4f1fb;border-radius:10px;padding:15px;color:#493b6b;font-size:12px;margin:20px 0}.answer{padding:2px 3px;font-size:12px;line-height:1.8;color:#504c60}.answer strong{color:#2b1f4d}.sources{border-top:1px solid #ece8f2;display:flex;flex-wrap:wrap;gap:7px;margin-top:17px;padding-top:17px}.source{font-size:9px;color:#6644ad;border:1px solid #e6dcf8;background:#faf8ff;border-radius:7px;padding:8px 10px;font-weight:700}.memory-layout .feature-copy p{color:#797286}.memory-layout .feature-list li{color:#433c53}.memory-layout .feature-list svg{color:var(--purple)}
    .audience{background:#fff}.audience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:47px}.audience-card{padding:30px;border:1px solid #eae6f2;border-radius:16px;background:linear-gradient(155deg,#fff,#fcfaff);min-height:255px;transition:transform .2s,box-shadow .2s}.audience-card:hover{transform:translateY(-4px);box-shadow:0 16px 38px #2a184b10}.audience-card .big-icon{width:46px;height:46px;border-radius:13px;background:var(--lav);color:var(--purple);display:grid;place-items:center}.audience-card:nth-child(2) .big-icon{background:#fff0e9;color:#e86645}.audience-card:nth-child(3) .big-icon{background:#fff6d9;color:#ab7e06}.audience-card h3{font-size:17px;letter-spacing:-.03em;margin:23px 0 11px}.audience-card p{font-size:13px;line-height:1.75;color:#787184}
    .audience-grid.audience-two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:920px;margin-left:auto;margin-right:auto}.audience-link{display:block;cursor:pointer}.audience-arrow{display:inline-block;margin-top:23px;color:#6139c3;font-size:12px;font-weight:800}.audience-link:hover .audience-arrow{text-decoration:underline;text-underline-offset:4px}
    @media(max-width:780px){.audience-grid.audience-two{grid-template-columns:1fr}}
    .cta-section{padding:0 0 96px}.cta-box{background:radial-gradient(circle at 93% 4%,rgba(244,122,90,.28),transparent 35%),radial-gradient(circle at 6% 99%,rgba(158,109,255,.3),transparent 37%),var(--violet);border-radius:24px;text-align:center;color:#fff;padding:75px 30px;position:relative;overflow:hidden}.cta-box h2{font-size:clamp(35px,4.1vw,53px);letter-spacing:-.06em;line-height:1.18;margin:17px auto;max-width:640px}.cta-box p{color:#d3c8ec;font-size:15px;line-height:1.7;max-width:550px;margin:auto}.cta-box .btn{margin-top:28px;background:var(--coral);color:white}.cta-box .btn:hover{background:#df5534}.cta-box .section-kicker{color:#e3bbff}
    .footer{background:#faf9fd;border-top:1px solid #ebe7f0;padding:49px 0 26px}.footer-main{display:flex;justify-content:space-between;gap:40px;padding-bottom:50px}.footer .wordmark{font-size:30px}.footer p{font-size:12px;line-height:1.7;color:#837c91;max-width:295px;margin-top:13px}.footer-links{display:flex;gap:85px}.footer-links h4{font-size:12px;margin-bottom:16px}.footer-links a{display:block;color:#716b80;font-size:12px;margin:13px 0}.footer-bottom{border-top:1px solid #eae5ee;padding-top:22px;display:flex;justify-content:space-between;color:#8a8495;font-size:11px;gap:16px}.icon{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
    .toast{position:fixed;bottom:25px;right:25px;z-index:1000;background:var(--violet);color:#fff;padding:13px 18px;border-radius:11px;box-shadow:0 15px 40px #1c113a44;font-size:13px;display:none;max-width:300px}.toast.show{display:block}
    @media(max-width:1050px){.hero .container{grid-template-columns:1fr 1fr}.hero h1{font-size:55px}.app-window{grid-template-columns:110px 1fr}.app-sidebar{padding:16px 8px}.app-main{padding:20px 13px}.feature-grid{gap:32px}.memory-layout{gap:35px}.floating-note{right:-5px}.steps{gap:8px}.step{padding:18px 12px}.footer-links{gap:38px}}
    @media(max-width:780px){.nav{height:65px}.mobile-toggle{display:block}.navlinks{display:none;position:absolute;top:65px;left:0;right:0;background:white;border-bottom:1px solid #eee8f4;padding:20px 28px;flex-direction:column;align-items:stretch;gap:19px}.navlinks.open{display:flex}.navlinks a{font-size:14px}.nav-cta{margin-left:auto}.hero .container{grid-template-columns:1fr;padding-top:65px;padding-bottom:80px;gap:48px}.hero h1{font-size:clamp(49px,9vw,70px);max-width:650px}.hero-visual{max-width:600px;padding:0 10px;margin:auto;width:100%}.app-window{transform:none}.steps{grid-template-columns:repeat(2,1fr);gap:13px}.step:last-child{grid-column:1/-1;min-height:155px}.step:not(:last-child):after{display:none}.feature-grid,.feature-grid.reverse,.memory-layout{grid-template-columns:1fr;gap:38px}.feature-grid{padding:80px 0}.memory-layout .memory-demo{order:2}.audience-grid{grid-template-columns:1fr}.audience-card{min-height:0}.section{padding:80px 0}.footer-main{flex-wrap:wrap}.footer-links{gap:65px}}
    @media(max-width:480px){.container{padding:0 19px}.announcement{font-size:10px}.nav-cta{padding:10px 13px;font-size:11px}.wordmark{font-size:28px}.hero .container{padding-top:56px}.hero h1{font-size:49px}.hero p{font-size:15px}.hero-buttons .btn{flex:1;padding:14px 11px;font-size:11px}.app-sidebar{min-height:365px}.app-sidebar .side-item{font-size:0;justify-content:center}.app-sidebar .side-label{font-size:0}.app-sidebar .wordmark{font-size:0}.app-sidebar .wordmark:after{content:'j.';font-size:19px}.app-window{grid-template-columns:46px 1fr}.app-metrics{gap:4px}.metric{padding:9px 6px}.metric strong{font-size:13px}.metric small,.metric b{font-size:7px}.app-main{padding:16px 10px}.floating-note{right:0;bottom:-27px}.section-title{font-size:35px}.steps{grid-template-columns:1fr}.step,.step:last-child{min-height:0}.feature-copy h2{font-size:35px}.footer-links{gap:36px}.footer-bottom{flex-direction:column}.cta-box{padding:60px 19px}}
    @media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Additions for the homepage, integrations, captions, and the privacy page. */
.skip{position:absolute;left:-999px;top:8px;background:var(--violet);color:#fff;padding:10px 14px;border-radius:8px;z-index:200}.skip:focus{left:12px}
.illustrative{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#7a7390;margin-top:14px}.illustrative:before{content:'';width:6px;height:6px;border-radius:50%;background:var(--gold)}.feature-band .illustrative,.dark-showcase .illustrative{color:#a39ab9}
.studio-ask{display:flex;align-items:center;gap:9px;border:1px solid #e6e0f2;border-radius:10px;padding:11px 12px;font-size:10px;color:#6e6481;box-shadow:0 4px 14px rgba(50,33,108,.05)}.studio-ask span{color:var(--purple);font-size:13px}
.flow-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:13px}.flow-card{border-radius:9px;padding:10px 7px;background:#f6f2ff;min-width:0}.flow-card:nth-child(2){background:#fff7e6}.flow-card:nth-child(3){background:#f1efff}.flow-card:nth-child(4){background:#ffece5}.flow-card:nth-child(5){background:#fff6df}.flow-card svg{width:16px;height:16px;color:var(--purple)}.flow-card:nth-child(2) svg,.flow-card:nth-child(5) svg{color:#c48d10}.flow-card:nth-child(4) svg{color:var(--coral)}.flow-card strong{display:block;font-size:9px;margin-top:7px;font-family:Manrope,Inter,sans-serif}.flow-card small{display:block;font-size:7.5px;line-height:1.4;color:#77718c;margin-top:3px}
.integrations{background:#faf9fe;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.int-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-top:44px}.int-card{background:#fff;border:1px solid #eae6f2;border-radius:14px;padding:20px 18px;min-width:0}.int-card .int-mark{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:var(--lav);color:var(--purple);font-weight:800;font-family:Manrope,Inter,sans-serif;font-size:14px}.int-card h3{font-size:14px;margin:15px 0 6px}.int-card p{font-size:12px;line-height:1.6;color:#787184}.int-card.planned{background:#fcfbfe;border-style:dashed}.tag-planned{display:inline-block;margin-left:6px;vertical-align:middle;font-family:Inter,sans-serif;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8a6406;background:#fff3cf;border-radius:99px;padding:3px 7px}
.cta-box .btn-ghost{background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;margin-left:8px}.cta-box .btn-ghost:hover{background:rgba(255,255,255,.08)}.cta-note{font-size:12px!important;color:#b9acd9!important;margin-top:18px!important}
.footer-bottom a:hover{color:var(--purple)}
.prose{max-width:720px;margin:0 auto;padding:72px 28px 96px}.prose h1{font-size:clamp(38px,5vw,56px);letter-spacing:-.06em;line-height:1.1;font-weight:800}.prose .stamp{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#7243da;margin:16px 0 34px}.prose h2{font-size:21px;letter-spacing:-.03em;margin:40px 0 12px}.prose p{font-size:15px;line-height:1.8;color:#4f4a60;margin-bottom:12px}.prose a{color:var(--purple);text-decoration:underline;text-underline-offset:3px}.prose table{width:100%;border-collapse:collapse;margin:8px 0 12px;font-size:14px}.prose th,.prose td{text-align:left;vertical-align:top;padding:12px 10px;border-bottom:1px solid var(--line);line-height:1.6}.prose th{width:34%;color:var(--violet);font-weight:700}.prose td{color:#4f4a60}
@media(max-width:1050px){.int-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:780px){.int-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cta-box .btn-ghost{margin-left:0}}
@media(max-width:480px){.int-grid{grid-template-columns:1fr}.flow-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.flow-card:nth-child(n+4){display:none}.prose{padding:56px 19px 80px}.cta-box .btn{width:100%}}
.feature-band .section-kicker{color:#cdb6ff}.pad-top{padding-top:96px}
.hero .app-sub{font-size:10px;line-height:1.5;color:#878294;max-width:none}.hero h1{color:var(--violet)}
.hero .agent-card p{font-size:9px;line-height:1.5;color:#6e6481;max-width:none}.hero .proof-line{font-size:12px}

/* Jensy Memory page (/memory). Motion follows the laurenmilligan.pro figures: dashed trails that flow,
   markers that ride offset-path, and a reveal on scroll. Figures pause while off screen. */
@keyframes jm-trail{to{stroke-dashoffset:-20}}
@keyframes jm-trail-in{to{stroke-dashoffset:20}}
@keyframes jm-run{from{offset-distance:0%}to{offset-distance:100%}}
@keyframes jm-spin{to{transform:rotate(360deg)}}
@keyframes jm-pulse{0%{opacity:.6;transform:scale(.9)}100%{opacity:0;transform:scale(1.25)}}
@keyframes jm-leg1{0%{offset-distance:0%;opacity:0}4%{opacity:1}55%{offset-distance:100%;opacity:1}60%,100%{offset-distance:100%;opacity:0}}
@keyframes jm-leg2{0%,57%{offset-distance:0%;opacity:0}61%{opacity:1}92%{offset-distance:100%;opacity:1}100%{offset-distance:100%;opacity:0}}
@keyframes jm-gate{0%,58%,82%,100%{opacity:0}64%,74%{opacity:.55}}
@keyframes jm-hop{0%{offset-distance:0%;opacity:0}6%{opacity:1}62%{offset-distance:100%;opacity:1}70%,100%{offset-distance:100%;opacity:0}}
.jm-fig:not(.jm-live) *{animation-play-state:paused!important}
.jm-svg{display:block;width:100%;height:auto;overflow:visible}.jm-svg text{font-family:Inter,system-ui,sans-serif;font-size:13px;fill:#4c4761}
.jm-trail{fill:none;stroke:#b39cf2;stroke-width:1.6;stroke-dasharray:4 6;animation:jm-trail 1.4s linear infinite}.jm-trail.jm-in{animation-name:jm-trail-in}
.jm-mover{offset-rotate:0deg;animation:jm-run var(--dur,9s) linear infinite;animation-delay:var(--d,0s)}
.jm-dot{fill:var(--purple);stroke:#fff;stroke-width:2.5}.jm-dot-coral{fill:var(--coral)}.jm-dot-gold{fill:var(--gold)}
/* hero core */
.jm-hero .container{padding-bottom:84px}.jm-hero h1{max-width:560px}
.jm-core{max-width:520px;margin:auto;position:relative}
.jm-ring{fill:none;stroke:#7042dc;stroke-width:1.4;stroke-dasharray:2 7;opacity:.45;transform-origin:260px 235px;animation:jm-spin 40s linear infinite}.jm-ring-b{stroke-dasharray:3 9;opacity:.3;animation-duration:55s;animation-direction:reverse}
.jm-chips rect{fill:#fff;stroke:#e2d8fb;stroke-width:1.4;filter:drop-shadow(0 6px 14px rgba(43,23,80,.08))}.jm-chips text{font-weight:700;font-size:13px;fill:var(--violet);text-anchor:middle}
.jm-svg .jm-core-label{font-family:Manrope,Inter,sans-serif;font-weight:800;font-size:16px;fill:var(--violet)}
/* record types */
.jm-top{align-items:start}.jm-p2{margin-top:16px}
.jm-records{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.jm-record{background:#fff;border:1px solid #eae6f2;border-radius:16px;padding:18px;box-shadow:0 10px 30px #2b175010}.jm-record h3{font-size:15px;letter-spacing:-.02em;color:var(--violet)}.jm-record p{font-size:12.5px;line-height:1.6;color:#6c6980;margin:7px 0 12px}.jm-record span{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.04em;color:#6139c3;background:var(--lav);border-radius:99px;padding:5px 9px}
/* loop */
.jm-loop{max-width:440px;margin:auto}.jm-orbit{fill:none;stroke:#ece6fb;stroke-width:10}.jm-orbit-trail{stroke-width:1.6}
.jm-station circle{fill:#fff;stroke:#d7cbf6;stroke-width:1.6}.jm-station text{text-anchor:middle;font-weight:700;font-size:14px;fill:var(--violet)}.jm-svg .jm-num{font-size:11px;fill:#a39ab9;font-weight:800}
.jm-station-key circle{stroke:var(--coral);stroke-width:2.2;fill:#fffaf8}.jm-station-key .jm-pulse{fill:none;stroke:var(--coral);stroke-width:2;transform-origin:220px 335px;animation:jm-pulse 3s ease-in-out infinite}.jm-station-key text{fill:#c8492a}
.jm-svg .jm-center{text-anchor:middle;font-size:14px;fill:#8a8396}
.jm-steps{margin:26px 0 0;padding:0;list-style:none;display:grid;gap:10px;counter-reset:s}.jm-steps li{font-size:14px;line-height:1.65;color:#5d586d;border-left:3px solid #e2d8fb;padding:4px 0 4px 14px}.jm-steps b{color:var(--violet)}.jm-steps .jm-key{border-color:var(--coral)}
/* figures */
.jm-figure{margin:44px 0 0;background:#fff;border:1px solid #eae6f2;border-radius:18px;padding:22px 22px 20px;box-shadow:0 22px 60px #2b175012}
.jm-figure figcaption{font-size:12.5px;line-height:1.65;color:#77718c;margin-top:12px;max-width:760px}
.jm-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.jm-scroll .jm-svg{min-width:760px}.jm-swipe{display:none;font-size:11px;font-weight:700;color:#8a8396;margin-bottom:10px}.jm-dark .jm-swipe{color:#a39ab9}
.jm-legend{display:flex;flex-wrap:wrap;gap:18px;margin-top:14px;font-size:12px;color:#cfc8e5}.jm-legend span{display:inline-flex;align-items:center;gap:8px}.jm-legend i{width:12px;height:12px;border-radius:4px}.jm-legend i.lav{background:#b39cf2}.jm-legend i.coral{background:var(--coral)}.jm-legend i.gold{background:var(--gold)}.jm-legend-light{color:#5d586d}
.jm-link{fill:none;stroke:#cfc6e0;stroke-width:1.6}
.jm-node rect{fill:#fff;stroke:#ddd5ee;stroke-width:1.5}.jm-svg .jm-node-t{text-anchor:middle;font-weight:800;font-size:13px;fill:var(--violet)}.jm-svg .jm-node-s{text-anchor:middle;font-size:11px;fill:#8a8396}.jm-svg .jm-left{text-anchor:start}
.jm-sub rect,.jm-sort rect{fill:#f6f2ff;stroke:#d8cbfa}.jm-rec rect:first-child{fill:#fff}
.jm-approve rect{fill:var(--coral);stroke:none}.jm-svg .jm-approve text{fill:#fff}
.jm-gate-glow{fill:none;stroke:var(--coral);stroke-width:3;opacity:0;animation:jm-gate 9s linear infinite}
.jm-leg1{animation:jm-leg1 9s linear infinite}.jm-leg2{animation:jm-leg2 9s linear infinite}.jm-hop{animation:jm-hop 4.5s linear infinite;animation-delay:var(--d,0s)}
.jm-bus{fill:var(--violet)}.jm-svg .jm-bus-title{font-family:Manrope,Inter,sans-serif;font-weight:800;font-size:15px;fill:#fff}.jm-svg .jm-bus-sub{font-size:12px;fill:#cdb6ff}
.jm-read{stroke:#b39cf2}.jm-write{stroke:var(--coral)}
.jm-ref{fill:var(--lav);stroke:#d8cbfa!important}.jm-svg .jm-ref-t{text-anchor:middle;font-size:11px;font-weight:800;fill:#6139c3}
.jm-tie{stroke:#b39cf2;animation-duration:2.4s}
.jm-svg .jm-axis{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;fill:#a39ab9}
/* dark band (parallel sessions) */
.jm-band{padding:100px 0}.jm-band .section-desc{color:#b9b3ce}.jm-band .section-title{color:#fff}
.jm-dark{background:#1b1634;border-color:#393053;box-shadow:0 30px 80px #05030b66}.jm-dark figcaption{color:#a39ab9}
.jm-dark .jm-svg text{fill:#cfc8e5}.jm-dark .jm-svg .jm-lane-label{font-weight:700;font-size:13px;fill:#e8e2f7}
.jm-guide{stroke:#3a3151;stroke-width:1;stroke-dasharray:2 6}
.jm-session rect{fill:rgba(112,66,220,.32);stroke:#7a55e0;stroke-width:1.2}.jm-dark .jm-session text{font-size:12px;font-weight:700;fill:#fff}
.jm-dark .jm-bus{fill:#32216c;stroke:#5a45a0;stroke-width:1.2}.jm-dark .jm-dot{stroke:#1b1634}.jm-dark .jm-dot:not(.jm-dot-coral){fill:#c9b5ff}
.jm-overlap{fill:rgba(248,201,90,.07);stroke:rgba(248,201,90,.35);stroke-dasharray:3 5}.jm-dark .jm-svg .jm-overlap-label{text-anchor:middle;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;fill:var(--gold)}
.jm-dark .jm-svg .jm-axis{fill:#857ba3}
.jm-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:40px}.jm-points h3{font-size:16px;letter-spacing:-.02em;margin-bottom:8px}.jm-points p{font-size:13.5px;line-height:1.7;color:#b9b3ce}
/* ask demo */
.jm-ask{margin-top:80px}.jm-asks{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.jm-ask-btn{border:1px solid #e2d8fb;background:#fff;color:#5d4a92;border-radius:99px;padding:7px 11px;font-size:11px;font-weight:700}.jm-ask-btn[aria-pressed=true]{background:var(--purple);border-color:var(--purple);color:#fff}.jm-ask-btn:hover{border-color:var(--purple)}
.jm-spark{color:var(--purple);margin-right:4px}.jm-related{width:100%;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#a39ab9}
/* limits */
.jm-limits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:47px}.jm-limits .audience-card{min-height:0}.jm-limits h3{margin-top:0}
.memory-layout .small-link{color:var(--purple)}.memory-layout .small-link:hover{color:var(--violet)}
/* reveal */
.jm-js .jm-reveal{opacity:0;transform:translateY(14px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--i,0) * 70ms)}.jm-js .jm-reveal.is-visible{opacity:1;transform:none}
@media(max-width:1050px){.jm-limits{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.jm-swipe{display:block}.jm-records{grid-template-columns:1fr 1fr}.jm-points{grid-template-columns:1fr;gap:20px}.jm-loop-wrap{order:2}.jm-band{padding:80px 0}.jm-ask{margin-top:56px}}
@media(max-width:480px){.jm-records,.jm-limits{grid-template-columns:1fr}.jm-figure{padding:16px 14px}}
@media(prefers-reduced-motion:reduce){.jm-mover,.jm-gate-glow{display:none}.jm-js .jm-reveal{opacity:1;transform:none}}
