/* The homepage film (public/film.js), in three acts like a product video:
   Lex and an orbit of features; a camera moving through the Inboxrise app as
   it does the work; a closing title. Plain white, no decoration: the motion is
   the camera, the UI and Lex.
   Everything is laid out on a fixed 1280 x 720 stage (.fm-fit) scaled to the
   frame, so it behaves like a video at every width. All motion is one GSAP
   timeline. Nothing here shows a figure. */
.fm{--ink:#241F1A;--ink2:#6B6459;--ink3:#9A9184;--brand:#2C5FD6;--brand2:#1E4BB8;--tint:#E9F0FC;--ok:#0E9384;--okt:#E3F4F1;--bad:#E85D42;--badt:#FCEBE6;--amber:#E0902B;--ambt:#FBF0DD;
  --side:#F5F1EA;--line:#EBE5DA;--line2:#E0D8CA;
  position:relative;max-width:1040px;margin:56px auto 0;aspect-ratio:16/9;border-radius:22px;overflow:hidden;text-align:left;isolation:isolate;background:#fff;
  border:1px solid #E0D8CA;box-shadow:0 40px 90px -24px rgba(36,31,26,.28),0 8px 24px rgba(70,55,40,.08)}
.fm *{box-sizing:border-box}
.fm-fit{position:absolute;left:0;top:0;width:1280px;height:720px;transform-origin:0 0;font-family:'Inter',system-ui,sans-serif;color:var(--ink)}
.fm-warp{position:absolute;inset:0;z-index:8;width:100%;height:100%;pointer-events:none}
.fm-act{position:absolute;inset:0;visibility:hidden}

/* Act 1: Lex and the feature orbit */
.hub-title{position:absolute;left:0;right:0;top:250px;text-align:center}
.hub-mark{display:inline-flex;align-items:center;gap:22px}
.hub-mark .lexbig{width:92px;height:110px}
.hub-mark .lexbig .ir-lex{width:100%;height:100%}
.hub-mark b{font:700 104px/1 'Bricolage Grotesque',sans-serif;letter-spacing:-.04em;color:var(--ink)}
.hub-title p{margin:22px 0 0;font-size:22px;color:var(--ink2)}
.hub{position:absolute;left:640px;top:282px;width:0;height:0}
.hub-halo{position:absolute;left:-210px;top:-210px;width:420px;height:420px;border-radius:50%;background:radial-gradient(closest-side,rgba(44,95,214,.20),rgba(127,164,245,.10) 55%,transparent)}
.hub-core{position:absolute;left:-58px;top:-70px;width:116px;height:140px}
.hub-core .ir-lex{width:100%;height:100%}
.hub-core-name{position:absolute;left:-60px;top:76px;width:120px;text-align:center;font:600 20px 'Bricolage Grotesque',sans-serif;color:var(--ink2)}
.hub-wheel{position:absolute;left:0;top:0;width:0;height:0}
.hub-spoke{position:absolute;left:0;top:-1px;height:2px;width:225px;transform-origin:0 50%;background:linear-gradient(90deg,rgba(44,95,214,.05),rgba(44,95,214,.22))}
.hub-node{position:absolute;left:-34px;top:-34px;width:68px;height:68px}
.hub-node .dot{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;box-shadow:0 12px 26px -6px rgba(36,31,26,.25),inset 0 -6px 12px rgba(0,0,0,.08)}
.hub-node .dot svg{width:30px;height:30px;color:#fff}
.hub-node span{position:absolute;left:50%;top:76px;transform:translateX(-50%);white-space:nowrap;font:600 15px 'Inter',sans-serif;color:var(--ink2)}
.hub-focus{position:absolute;left:0;right:0;top:582px;text-align:center}
.hub-pill{position:absolute;left:0;right:0;margin:0 auto;width:max-content;top:0;white-space:nowrap;padding:9px 20px;border-radius:100px;font:700 19px 'Inter',sans-serif;color:#fff;box-shadow:0 12px 26px -8px rgba(36,31,26,.35)}
.hub-cap{position:absolute;left:0;right:0;top:52px;font:700 34px/1.1 'Bricolage Grotesque',sans-serif;letter-spacing:-.02em;color:var(--ink)}

/* Act 2: the app */
.ap{position:absolute;inset:0;overflow:hidden;background:#fff}
.ap-cam{position:absolute;left:0;top:0;width:1280px;height:720px;transform-origin:0 0}
.ap-side{position:absolute;left:0;top:0;bottom:0;width:212px;background:var(--side);border-right:1px solid var(--line);padding:18px 14px}
.ap-logo{display:flex;align-items:center;gap:10px;font:700 17px 'Bricolage Grotesque',sans-serif;margin-bottom:22px}
.ap-logo i{width:30px;height:30px;border-radius:9px;background:var(--brand);display:grid;place-items:center}
.ap-logo i svg{width:16px;height:16px;color:#fff}
.ap-sec{font:700 10.5px 'Inter',sans-serif;letter-spacing:.09em;color:var(--ink3);margin:16px 6px 7px}
.ap-nav{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;font:500 14px 'Inter',sans-serif;color:var(--ink2)}
.ap-nav svg{width:16px;height:16px;flex:none}
.ap-nav.on{background:#E7E0D3;color:var(--ink);font-weight:600}
.ap-main{position:absolute;left:212px;top:0;right:0;bottom:0}
.ap-head{position:absolute;left:0;right:0;top:0;height:64px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;gap:16px}
.ap-head h4{margin:0;font:700 21px 'Bricolage Grotesque',sans-serif}
.ap-search{margin-left:auto;width:260px;height:36px;border-radius:10px;background:#F7F4EE;border:1px solid var(--line);font-size:13px;color:var(--ink3);display:flex;align-items:center;padding:0 12px}
.ap-page{position:absolute;left:0;right:0;top:64px;bottom:0;padding:24px 28px;visibility:hidden}
.ap-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(70,55,40,.05)}
.ap-chip{display:inline-flex;align-items:center;gap:6px;font:600 12px 'Inter',sans-serif;padding:5px 10px;border-radius:100px;background:var(--okt);color:#0B6F64;white-space:nowrap}
.ap-chip svg{width:12px;height:12px}
.ap-chip.blue{background:var(--tint);color:var(--brand2)}
.ap-chip.bad{background:var(--badt);color:#B5412B}
.ap-chip.grey{background:#F2EEE6;color:var(--ink3)}
.ap-chip.amber{background:var(--ambt);color:#9A5E12}
.ap-btn{display:inline-flex;align-items:center;gap:7px;font:600 13px 'Inter',sans-serif;padding:9px 16px;border-radius:10px;border:1px solid var(--line2);background:#fff;color:var(--ink)}
.ap-btn.pri{background:var(--brand);border-color:var(--brand);color:#fff}

/* Lex AI bar, as in the app */
.ap-bar{position:absolute;left:390px;top:640px;width:640px;height:52px;border-radius:16px;background:#fff;border:1.5px solid #C9D7F7;box-shadow:0 14px 30px -10px rgba(44,95,214,.35);display:flex;align-items:center;gap:12px;padding:0 10px 0 14px;z-index:3}
.ap-bar .tag{font:700 12px 'Bricolage Grotesque',sans-serif;color:#fff;background:var(--brand);padding:3px 9px;border-radius:100px}
.ap-bar .typed{flex:1;font-size:15px;color:var(--ink)}
.ap-bar .typed:empty::before{content:'Ask Lex AI';color:var(--ink3)}
.ap-bar .send{width:34px;height:34px;border-radius:10px;background:var(--brand);display:grid;place-items:center}
.ap-bar .send svg{width:16px;height:16px;color:#fff}
.ap-lex{position:absolute;left:402px;top:578px;width:54px;height:64px;z-index:4}
.ap-lex .ir-lex{width:100%;height:100%}

/* Page: Lex AI builds a campaign */
.lx-panel{position:absolute;left:178px;top:22px;width:640px;height:520px;padding:20px 22px;z-index:2;box-shadow:0 30px 60px -20px rgba(36,31,26,.25)}
.lx-me{margin-left:auto;width:max-content;max-width:80%;background:var(--brand);color:#fff;font-size:15px;padding:11px 15px;border-radius:16px 16px 4px 16px}
.lx-work{margin-top:16px;font:600 13px 'Inter',sans-serif;color:var(--ink3);display:flex;align-items:center;gap:8px}
.lx-work i{width:8px;height:8px;border-radius:50%;background:var(--brand)}
.lx-step{display:flex;align-items:center;gap:10px;margin-top:11px;font-size:15px;color:var(--ink)}
.lx-step .ck{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line2);display:grid;place-items:center;flex:none}
.lx-step .ck svg{width:12px;height:12px;color:#fff;opacity:0}
.lx-step em{font-style:normal;color:var(--ink3);margin-left:auto;font-size:13px}
.lx-card{margin-top:18px;padding:16px 18px;background:#FBFAF7;border:1px solid var(--line);border-radius:14px}
.lx-card b{display:block;font:700 16px 'Bricolage Grotesque',sans-serif;margin-bottom:4px}
.lx-card p{margin:0 0 10px;font-size:13px;color:var(--ink2)}
.lx-line{display:flex;gap:10px;align-items:baseline;font-size:14px;padding:7px 0;border-top:1px solid var(--line)}
.lx-line small{font:700 11px 'Inter',sans-serif;color:var(--ink3);width:46px;flex:none}
.lx-acts{display:flex;gap:8px;margin-top:12px}

/* Page: Target mode table */
.tg-top{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.tg-top b{font:700 17px 'Bricolage Grotesque',sans-serif}
.tg-table{position:relative}
.tg-row{display:grid;grid-template-columns:180px 130px 1fr 236px;align-items:center;gap:14px;padding:13px 18px;border-top:1px solid var(--line);font-size:14px}
.tg-row.h{border-top:none;font:700 11px 'Inter',sans-serif;letter-spacing:.07em;text-transform:uppercase;color:var(--ink3);padding-top:14px;padding-bottom:10px}
.tg-row .who{display:flex;align-items:center;gap:10px;font-weight:600}
.tg-row .av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:#fff;font:700 11px 'Bricolage Grotesque',sans-serif;flex:none}
.tg-row .co{color:var(--ink2)}
.tg-row .op{color:var(--ink);min-height:20px;white-space:nowrap;overflow:hidden}
.tg-row .st{justify-self:start}

/* Page: pre-flight */
.pf-dim{position:absolute;inset:0;background:rgba(36,31,26,.28);z-index:1}
.pf-modal{position:absolute;left:300px;top:70px;width:500px;padding:24px 26px;z-index:2;box-shadow:0 40px 80px -20px rgba(36,31,26,.4)}
.pf-modal h5{margin:0 0 4px;font:700 21px 'Bricolage Grotesque',sans-serif}
.pf-modal p{margin:0 0 16px;font-size:13.5px;color:var(--ink2)}
.pf-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid var(--line);font:600 15px 'Inter',sans-serif}
.pf-row .lg{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;font:700 14px 'Bricolage Grotesque',sans-serif}
.pf-row .ap-chip,.pf-row em{margin-left:auto}
.pf-row em{font-style:normal;font-size:13px;color:var(--ink3)}
.pf-foot{display:flex;align-items:center;gap:12px;margin-top:16px}
.pf-verdict{display:inline-flex;align-items:center;gap:9px;font:700 14px 'Inter',sans-serif;color:#fff;background:var(--ink);padding:9px 16px;border-radius:100px}
.pf-verdict i{width:8px;height:8px;border-radius:50%;background:#3FD6B8;box-shadow:0 0 10px #3FD6B8}
.pf-foot .ap-btn{margin-left:auto}
.pf-bg{opacity:.9}
.pf-bg .ap-card{height:92px;margin-bottom:14px}

/* Page: protection */
.pr-banner{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:14px;background:#FFF6F3;border:1px solid #F4C8BC;margin-bottom:16px}
.pr-banner svg{width:24px;height:24px;color:var(--bad);flex:none;margin-top:2px}
.pr-banner b{display:block;font:700 15.5px 'Bricolage Grotesque',sans-serif;margin-bottom:3px}
.pr-banner p{margin:0;font-size:13.5px;color:var(--ink2)}
.pr-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:16px}
.pr-inbox{display:grid;grid-template-columns:1fr 120px 150px;align-items:center;gap:14px;padding:14px 18px;border-top:1px solid var(--line);font-size:14px}
.pr-inbox:first-child{border-top:none}
.pr-inbox b{font-weight:600}
.pr-bar{height:7px;border-radius:7px;background:#EEF2FB;overflow:hidden}
.pr-bar i{display:block;height:100%;width:100%;border-radius:7px;background:linear-gradient(90deg,#7FA4F5,#2C5FD6);transform-origin:left;transform:scaleX(.1)}
.pr-chart{padding:16px 18px}
.pr-chart b{font:600 13px 'Inter',sans-serif;color:var(--ink2)}
.pr-chart svg{display:block;width:100%;height:180px;margin-top:8px;overflow:visible}
.pr-chart .ln{fill:none;stroke:var(--brand);stroke-width:3.5;stroke-linecap:round}
.pr-chart .ar{fill:url(#prArea)}
.pr-chart .gl line{stroke:#EEF0F6}

/* Page: replies */
.rp{position:absolute;inset:0;display:grid;grid-template-columns:330px 1fr}
.rp-list{border-right:1px solid var(--line);padding:14px}
.rp-conv{padding:12px 14px;border-radius:12px;margin-bottom:6px}
.rp-conv.on{background:var(--tint)}
.rp-conv b{display:flex;justify-content:space-between;align-items:center;font:600 14px 'Inter',sans-serif}
.rp-conv p{margin:4px 0 0;font-size:13px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-thread{position:relative;padding:22px 26px}
.rp-msg{padding:16px 18px;max-width:560px}
.rp-msg .from{display:flex;align-items:center;gap:10px;font:600 14px 'Inter',sans-serif;margin-bottom:8px}
.rp-msg .from .av{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#E85D42,#E0902B);color:#fff;display:grid;place-items:center;font:700 12px 'Bricolage Grotesque',sans-serif}
.rp-msg p{margin:0;font-size:15px;line-height:1.5}
.rp-box{position:absolute;left:26px;right:26px;bottom:110px;padding:14px 16px;border:1.5px solid #C9D7F7;border-radius:14px;background:#fff;box-shadow:0 14px 30px -14px rgba(44,95,214,.35)}
.rp-box .lbl{display:flex;align-items:center;gap:8px;font:600 12px 'Inter',sans-serif;color:var(--brand2);margin-bottom:8px}
.rp-box .txt{font-size:15px;line-height:1.5;min-height:46px}
.rp-box .foot{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:12.5px;color:var(--ink3)}
.rp-box .foot .ap-btn{margin-left:auto}

/* Page: pipeline */
.pl{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;height:440px}
.pl-col{background:#FAF8F4;border:1px solid var(--line);border-radius:14px;padding:12px;position:relative}
.pl-col h6{margin:0 0 10px;font:700 11px 'Inter',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}
.pl-col.goal{background:#F1FAF8;border-color:#BFE6DE}
.pl-col.goal h6{color:var(--ok)}
.pl-card{padding:11px 12px;margin-bottom:8px;font:600 13.5px 'Inter',sans-serif;border-left:3px solid #D6CEC0}
.pl-card small{display:block;font-weight:500;font-size:12px;color:var(--ink3);margin-top:2px}
.pl-lead{position:absolute;left:12px;top:44px;width:218px;z-index:3;border-left-color:var(--brand);box-shadow:0 16px 30px -10px rgba(44,95,214,.4)}
.pl-bit{position:absolute;width:9px;height:13px;border-radius:2px;opacity:0;z-index:4}

/* The pointer */
.ap-cursor{position:absolute;left:0;top:0;width:26px;height:26px;z-index:9;pointer-events:none;filter:drop-shadow(0 3px 4px rgba(0,0,0,.25))}
.ap-click{position:absolute;left:0;top:0;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;border:2px solid var(--brand);opacity:0;z-index:8;pointer-events:none}

/* Act 3: close */
.cl{position:absolute;inset:0;text-align:center}
.cl-row{position:absolute;left:0;right:0;top:170px;display:flex;justify-content:center;gap:18px}
.cl-row .dot{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;box-shadow:0 10px 22px -6px rgba(36,31,26,.25)}
.cl-row .dot svg{width:24px;height:24px;color:#fff}
.cl h3{position:absolute;left:0;right:0;top:262px;margin:0;font:700 92px/1 'Bricolage Grotesque',sans-serif;letter-spacing:-.045em;color:var(--ink)}
.cl h3 .hl{color:var(--brand)}
.cl-brand{position:absolute;left:0;right:0;top:420px;display:flex;justify-content:center;align-items:center;gap:12px;font:700 30px 'Bricolage Grotesque',sans-serif}
.cl-brand i{width:42px;height:42px;border-radius:12px;background:var(--brand);display:grid;place-items:center}
.cl-brand i svg{width:22px;height:22px;color:#fff}
.cl p{position:absolute;left:0;right:0;top:478px;margin:0;font-size:20px;color:var(--ink2)}
.cl-cta{position:absolute;left:0;right:0;margin:0 auto;width:max-content;top:530px;display:flex;align-items:center;gap:10px;padding:13px 26px;border-radius:100px;background:var(--brand);color:#fff;font:600 18px 'Inter',sans-serif;text-decoration:none;box-shadow:0 16px 32px -10px rgba(44,95,214,.6);pointer-events:auto}
.cl-cta span{opacity:.8;font-weight:500}

/* Controls */
.fm-chapters{position:absolute;z-index:9;left:50%;bottom:14px;transform:translateX(-50%);display:flex;gap:6px;padding:6px 8px;border-radius:100px;background:rgba(255,255,255,.75);backdrop-filter:blur(6px)}
.fm-chapters button{appearance:none;border:none;padding:0;margin:0;cursor:pointer;width:26px;height:5px;border-radius:5px;background:rgba(36,31,26,.14);overflow:hidden;position:relative}
.fm-chapters button i{position:absolute;inset:0;background:var(--brand);border-radius:5px;transform-origin:left;transform:scaleX(0)}
.fm-chapters button:focus-visible,.fm-pause:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.fm-pause{position:absolute;z-index:9;right:14px;top:14px;appearance:none;margin:0;cursor:pointer;font:600 12px 'Inter',sans-serif;color:var(--ink2);background:rgba(255,255,255,.9);border:1px solid #E0D8CA;border-radius:100px;padding:6px 12px}
.fm-pause:hover{color:var(--brand2);border-color:var(--brand)}

/* The still (before the animation library loads, and for reduced motion): the close. */
.fm.fm-still .fm-act.close{visibility:visible}
