motiondesk-studio 1.3.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +9 -4
  2. package/app/assets/bank-banker-chat-B_iF_sFM.js +257 -0
  3. package/app/assets/bank-business-loan-BFWWaq-c.js +247 -0
  4. package/app/assets/bank-car-choice-DLE2OVcc.js +229 -0
  5. package/app/assets/bank-card-freeze-J1JfFmLr.js +281 -0
  6. package/app/assets/bank-code-never-CQDlq8GN.js +234 -0
  7. package/app/assets/bank-dark-interlude-DhcdkPP1.js +190 -0
  8. package/app/assets/bank-digital-JTuIxFOJ.js +1 -0
  9. package/app/assets/bank-dinner-split-Be1e7DOQ.js +246 -0
  10. package/app/assets/bank-fast-pay-DoW0ClI6.js +230 -0
  11. package/app/assets/bank-first-salary-D9WxYgJf.js +212 -0
  12. package/app/assets/bank-fomo-stop-uEzdT0HP.js +230 -0
  13. package/app/assets/bank-forex-trip-BHW39y4z.js +205 -0
  14. package/app/assets/bank-growth-bars-DirAz4xB.js +203 -0
  15. package/app/assets/bank-holiday-budget-J41dLHwR.js +224 -0
  16. package/app/assets/bank-invest-B--KJb5m.js +1 -0
  17. package/app/assets/bank-life-C-4wZKyu.js +1 -0
  18. package/app/assets/bank-mortgage-papers-DMtx0XsI.js +214 -0
  19. package/app/assets/bank-new-app-look-CKmeKBU6.js +228 -0
  20. package/app/assets/bank-one-click-loan-BVhe1AGv.js +223 -0
  21. package/app/assets/bank-paper-explainer-CD8mPtnJ.js +191 -0
  22. package/app/assets/bank-pension-compare-BArvoVu7.js +243 -0
  23. package/app/assets/bank-remote-access-Df8UNpc7.js +257 -0
  24. package/app/assets/bank-safety-CBkr-iwJ.js +1 -0
  25. package/app/assets/bank-savings-pocket-B53nO1Z_.js +220 -0
  26. package/app/assets/bank-share-explained-DCp805RD.js +228 -0
  27. package/app/assets/bank-small-business-Bc7Ad4GW.js +217 -0
  28. package/app/assets/bank-student-routine-CnPPhtoV.js +224 -0
  29. package/app/assets/bank-suspicious-sms-CwOrdi3d.js +229 -0
  30. package/app/assets/bank-wedding-budget-CDM2kO0R.js +230 -0
  31. package/app/assets/bank-young-BwV6418l.js +1 -0
  32. package/app/assets/{catalog-Cdx5nbp0.js → catalog-CDdvrdnk.js} +1 -1
  33. package/app/assets/{index-D3rEDfqX.js → index-BRse9TUl.js} +4 -4
  34. package/app/assets/index-b6-Cm4vot4j.js +1 -0
  35. package/app/assets/index-b7-BLEay8YC.js +1 -0
  36. package/app/assets/index-b8-Jbh-zOZB.js +1 -0
  37. package/app/assets/index-b9-caOB8GyX.js +1 -0
  38. package/app/index.html +1 -1
  39. package/bin/motiondesk-studio.mjs +8 -1
  40. package/lib/catalog/hyperframes/bank-banker-chat.html +256 -0
  41. package/lib/catalog/hyperframes/bank-business-loan.html +246 -0
  42. package/lib/catalog/hyperframes/bank-car-choice.html +228 -0
  43. package/lib/catalog/hyperframes/bank-card-freeze.html +280 -0
  44. package/lib/catalog/hyperframes/bank-code-never.html +233 -0
  45. package/lib/catalog/hyperframes/bank-dark-interlude.html +189 -0
  46. package/lib/catalog/hyperframes/bank-dinner-split.html +245 -0
  47. package/lib/catalog/hyperframes/bank-fast-pay.html +229 -0
  48. package/lib/catalog/hyperframes/bank-first-salary.html +211 -0
  49. package/lib/catalog/hyperframes/bank-fomo-stop.html +229 -0
  50. package/lib/catalog/hyperframes/bank-forex-trip.html +204 -0
  51. package/lib/catalog/hyperframes/bank-growth-bars.html +202 -0
  52. package/lib/catalog/hyperframes/bank-holiday-budget.html +223 -0
  53. package/lib/catalog/hyperframes/bank-mortgage-papers.html +213 -0
  54. package/lib/catalog/hyperframes/bank-new-app-look.html +227 -0
  55. package/lib/catalog/hyperframes/bank-one-click-loan.html +222 -0
  56. package/lib/catalog/hyperframes/bank-paper-explainer.html +190 -0
  57. package/lib/catalog/hyperframes/bank-pension-compare.html +242 -0
  58. package/lib/catalog/hyperframes/bank-remote-access.html +256 -0
  59. package/lib/catalog/hyperframes/bank-savings-pocket.html +219 -0
  60. package/lib/catalog/hyperframes/bank-share-explained.html +227 -0
  61. package/lib/catalog/hyperframes/bank-small-business.html +216 -0
  62. package/lib/catalog/hyperframes/bank-student-routine.html +223 -0
  63. package/lib/catalog/hyperframes/bank-suspicious-sms.html +228 -0
  64. package/lib/catalog/hyperframes/bank-wedding-budget.html +229 -0
  65. package/lib/catalog/hyperframes/index-b6.json +146 -0
  66. package/lib/catalog/hyperframes/index-b7.json +121 -0
  67. package/lib/catalog/hyperframes/index-b8.json +92 -0
  68. package/lib/catalog/hyperframes/index-b9.json +87 -0
  69. package/lib/catalog/studio/bank-digital.json +3586 -0
  70. package/lib/catalog/studio/bank-invest.json +3653 -0
  71. package/lib/catalog/studio/bank-life.json +3605 -0
  72. package/lib/catalog/studio/bank-safety.json +3198 -0
  73. package/lib/catalog/studio/bank-young.json +3426 -0
  74. package/lib/vercel-render.mjs +16 -1
  75. package/package.json +30 -7
@@ -0,0 +1,233 @@
1
+ <!doctype html>
2
+ <html lang="he" dir="rtl">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=1920, height=1080">
6
+ <title>קוד אישי לא משתפים</title>
7
+ <script src="vendor/gsap.min.js"></script>
8
+ <style>
9
+ @font-face{font-family:"Heebo";font-weight:400;src:url(fonts/heebo-hebrew-400-normal.woff2) format("woff2");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
10
+ @font-face{font-family:"Heebo";font-weight:400;src:url(fonts/heebo-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F}
11
+ @font-face{font-family:"Heebo";font-weight:700;src:url(fonts/heebo-hebrew-700-normal.woff2) format("woff2");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
12
+ @font-face{font-family:"Heebo";font-weight:700;src:url(fonts/heebo-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F}
13
+ :root{--paper:#F4F4F2;--card:#FFFFFF;--ink:#141A26;--accent:#E3063B;--mute:#B4B8C0;--glow:#FF3B5C}
14
+ *{box-sizing:border-box;margin:0;padding:0}
15
+ html,body{width:1920px;height:1080px;overflow:hidden;background:var(--bg)}
16
+ body{font-family:"Heebo",Arial,sans-serif;-webkit-font-smoothing:antialiased}
17
+ #root{position:relative;width:1920px;height:1080px;overflow:hidden;background:var(--bg);color:var(--fg);direction:rtl;font-family:"Heebo",Arial,sans-serif}
18
+ .scene{position:absolute;inset:0;overflow:hidden}
19
+ .cam,.layer{position:absolute;inset:0}
20
+ .abs{position:absolute}
21
+ .m{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .05em .08em}
22
+ .w{display:inline-block;white-space:nowrap}
23
+ #root{background:radial-gradient(ellipse at 72% 18%,var(--card),var(--paper) 62%)}
24
+ .t{position:absolute;white-space:nowrap;line-height:1.15;color:var(--ink)}
25
+ .b{font-weight:700}
26
+ .bgl{position:absolute;height:2px;width:1400px;background:color-mix(in srgb,var(--ink) 7%,transparent);transform-origin:0 0}
27
+ .ov{position:absolute;inset:0;pointer-events:none}
28
+ .ov>*{pointer-events:auto}
29
+ .brand{position:absolute;top:38px;right:44px;display:flex;align-items:center;gap:12px;height:57.2px;padding:0 26px;border-radius:28.6px;background:var(--card);box-shadow:0 6px 20px color-mix(in srgb,var(--ink) 14%,transparent)}
30
+ .brand i{width:15.6px;height:15.6px;border-radius:3px;background:var(--accent);flex:none}
31
+ .brand p{font-size:26px;font-weight:700;color:var(--ink);white-space:nowrap}
32
+ .ltw{position:absolute;left:0;right:0;display:flex;justify-content:center}
33
+ .lt{display:flex;align-items:center;gap:12.8px;height:88px;padding:0 34px;border-radius:14px;background:var(--card);box-shadow:0 12px 32px color-mix(in srgb,var(--ink) 16%,transparent)}
34
+ .lt .mk{width:16.8px;height:16.8px;border-radius:3px;background:var(--accent);flex:none}
35
+ .lt p{font-size:40px;white-space:nowrap;color:var(--ink);line-height:1.2}
36
+ .lt .em{font-weight:700;color:var(--accent)}
37
+ .lt .cu{width:12px;height:42px;background:var(--ink);flex:none}
38
+ .card{position:absolute;background:var(--card);border-radius:10px;box-shadow:0 20px 48px color-mix(in srgb,var(--ink) 16%,transparent)}
39
+ .tape{position:absolute;width:140px;height:36px;background:var(--accent);box-shadow:0 3px 8px color-mix(in srgb,var(--ink) 18%,transparent)}
40
+ .tape::after{content:"";position:absolute;left:44%;top:12px;width:12px;height:12px;background:color-mix(in srgb,var(--card) 85%,var(--accent))}
41
+ .lab{position:absolute;padding:2px .55em 8px;font-weight:700;white-space:nowrap;line-height:1.2;box-shadow:0 8px 22px color-mix(in srgb,var(--ink) 14%,transparent)}
42
+ .lab.r{background:var(--accent);color:var(--card)}
43
+ .lab.w{background:var(--card);color:var(--ink)}
44
+ .lab.k{background:var(--ink);color:var(--card)}
45
+ .hw{position:absolute;white-space:nowrap}
46
+ .hw p{position:relative;line-height:1.15;color:var(--ink)}
47
+ .hl{position:absolute;left:-12px;right:-12px;bottom:10%;height:34%;background:color-mix(in srgb,var(--accent) 26%,transparent);transform-origin:100% 50%}
48
+ .ul{position:absolute;left:-6px;right:-6px;bottom:-6px;height:7px;border-radius:4px;background:var(--accent);transform-origin:100% 50%}
49
+ .cx{position:absolute;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:26px;white-space:nowrap}
50
+ .cx .hw{position:relative}
51
+ .cx>p{color:var(--ink);line-height:1.15}
52
+ .ln{position:absolute;height:14px;border-radius:7px;background:color-mix(in srgb,var(--mute) 50%,var(--card))}
53
+ .win{position:absolute;background:var(--card);border-radius:14px;overflow:hidden;box-shadow:0 20px 48px color-mix(in srgb,var(--ink) 16%,transparent)}
54
+ .win>.wb{position:absolute;left:0;right:0;top:0;height:44px;background:var(--ink)}
55
+ .win>.wb::before{content:"";position:absolute;left:18px;top:16px;width:12px;height:12px;border-radius:50%;background:var(--mute);box-shadow:20px 0 0 var(--mute),40px 0 0 var(--mute)}
56
+ .pill{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--accent)}
57
+ .pill p{color:var(--card);font-weight:700;white-space:nowrap}
58
+ .chip{position:absolute;display:flex;align-items:center;gap:12px;padding:0 26px;border-radius:999px;background:var(--card);box-shadow:0 10px 26px color-mix(in srgb,var(--ink) 14%,transparent)}
59
+ .chip i{width:14px;height:14px;border-radius:3px;background:var(--accent);flex:none}
60
+ .chip p{font-weight:700;white-space:nowrap;color:var(--ink)}
61
+ .fine{position:absolute;white-space:nowrap;color:color-mix(in srgb,var(--ink) 55%,var(--paper))}
62
+ .dk{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,color-mix(in srgb,var(--ink) 80%,var(--glow) 8%),var(--ink) 70%)}
63
+ .glw{position:absolute;background:var(--glow);box-shadow:0 0 60px 6px color-mix(in srgb,var(--glow) 70%,transparent),0 0 180px 40px color-mix(in srgb,var(--glow) 32%,transparent)}
64
+ .fig{position:absolute}
65
+ .fig .h{position:absolute;border-radius:50%}
66
+ .fig .bd{position:absolute;border-radius:48% 48% 14px 14px / 38% 38% 14px 14px}
67
+ .ck{fill:none;stroke:var(--card);stroke-linecap:round;stroke-linejoin:round}
68
+
69
+ .chh{position:absolute;right:30px;left:30px;top:66px;height:100px;border-bottom:3px solid color-mix(in srgb,var(--mute) 40%,var(--card))}
70
+ .cav{position:absolute;right:0;top:8px;width:76px;height:76px;border-radius:50%;background:color-mix(in srgb,var(--mute) 60%,var(--card))}
71
+ .cav::before{content:"";position:absolute;left:26px;top:14px;width:24px;height:24px;border-radius:50%;background:var(--card)}
72
+ .cav::after{content:"";position:absolute;left:16px;top:44px;width:44px;height:26px;border-radius:22px 22px 0 0;background:var(--card)}
73
+ .msgs{position:absolute;right:30px;left:40px;top:196px;display:flex;flex-direction:column;align-items:flex-start;gap:20px}
74
+ .bub{max-width:680px;padding:14px 30px 18px;border-radius:26px 6px 26px 26px;background:color-mix(in srgb,var(--mute) 22%,var(--card));font-size:38px;line-height:1.35;color:var(--ink)}
75
+ .bw{position:relative}
76
+ .bw .rg{position:absolute;inset:-12px;border-radius:34px;border:5px solid var(--accent)}
77
+ .bw .wn{position:absolute;left:-26px;top:-26px;width:58px;height:58px;border-radius:50%;background:var(--accent)}
78
+ .bw .wn::before{content:"";position:absolute;left:25px;top:10px;width:8px;height:24px;border-radius:4px;background:var(--card)}
79
+ .bw .wn::after{content:"";position:absolute;left:25px;top:39px;width:8px;height:8px;border-radius:4px;background:var(--card)}
80
+ .wn{transform-origin:50% 50%}
81
+ .inp{position:absolute;left:30px;right:30px;bottom:28px;height:84px;border-radius:42px;background:color-mix(in srgb,var(--mute) 16%,var(--card))}
82
+ .inp .sb{position:absolute;left:10px;top:10px;width:64px;height:64px;border-radius:50%;background:var(--mute)}
83
+ .dgs{position:absolute;left:0;right:0;top:190px;display:flex;justify-content:center;gap:16px;direction:ltr}
84
+ .dg{display:flex;align-items:center;justify-content:center;width:84px;height:116px;border-radius:14px;background:color-mix(in srgb,var(--mute) 18%,var(--card));border:3px solid color-mix(in srgb,var(--mute) 60%,var(--card));font-style:normal}
85
+ .dg::after{content:attr(data-d);font-size:72px;font-weight:700;color:var(--ink)}
86
+ .stamp{position:absolute;left:280px;top:370px;padding:4px 40px 16px;border:9px solid var(--accent);border-radius:18px;background:color-mix(in srgb,var(--card) 90%,transparent);box-shadow:inset 0 0 0 6px var(--card),inset 0 0 0 11px var(--accent)}
87
+ .stamp p{font-size:92px;font-weight:700;color:var(--accent);white-space:nowrap;word-spacing:.3em}
88
+ .c2{left:0;right:0;text-align:center}
89
+ .gr{color:color-mix(in srgb,var(--ink) 58%,var(--card))}
90
+ .num{position:absolute;right:30px;top:30px;width:70px;height:70px;border-radius:10px;background:var(--accent);color:var(--card);font-size:46px;font-weight:700;text-align:center;line-height:66px}
91
+ .sic{position:absolute;left:170px;top:70px;width:140px;height:140px}
92
+ .i1{border-radius:50%;background:var(--accent)}
93
+ .i1::before{content:"";position:absolute;left:28px;top:60px;width:84px;height:20px;border-radius:10px;background:var(--card)}
94
+ .i2::before{content:"";position:absolute;left:14px;top:10px;width:84px;height:84px;border-radius:50%;border:16px solid var(--ink);box-sizing:border-box}
95
+ .i2::after{content:"";position:absolute;left:84px;top:96px;width:52px;height:20px;border-radius:10px;background:var(--ink);transform:rotate(40deg);transform-origin:0 50%}
96
+ .i3::before{content:"";position:absolute;left:36px;top:0;width:68px;height:136px;border-radius:16px;background:var(--ink)}
97
+ .i3::after{content:"";position:absolute;left:46px;top:14px;width:48px;height:92px;border-radius:6px;background:var(--accent)}
98
+ .arr{position:absolute;top:560px;width:60px;height:60px;overflow:visible}
99
+ .arr path{fill:none;stroke:var(--accent);stroke-width:8;stroke-linecap:round;stroke-linejoin:round}
100
+ .dkt{color:var(--card)}
101
+ .halo{position:absolute;left:660px;top:-30px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--glow) 50%,transparent),transparent 65%)}
102
+ .lock{position:absolute;left:860px;top:170px;width:200px;height:200px;border-radius:46px}
103
+ .lock::before{content:"";position:absolute;left:62px;top:40px;width:76px;height:72px;border:14px solid var(--card);border-bottom:0;border-radius:40px 40px 0 0;box-sizing:border-box}
104
+ .lock::after{content:"";position:absolute;left:46px;top:96px;width:108px;height:72px;border-radius:12px;background:var(--card)}
105
+ .cx .dkt{line-height:1.15}
106
+ </style>
107
+ </head>
108
+ <body>
109
+ <div id="root" data-composition-id="bank-code-never" data-start="0" data-width="1920" data-height="1080" data-duration="16">
110
+ <section id="s1" class="clip scene" data-start="0" data-duration="4">
111
+ <div class="cam" id="c1">
112
+ <i class="bgl" style="left:880px;top:40px;transform:rotate(32deg)"></i>
113
+ <div class="win" id="wn" style="left:140px;top:150px;width:780px;height:720px"><i class="wb"></i>
114
+ <div class="chh"><i class="cav"></i><p class="t b" id="cn" style="right:96px;top:6px;font-size:38px">מספר לא מוכר</p><p class="t gr" id="cs" style="right:96px;top:52px;font-size:28px">עכשיו</p></div>
115
+ <div class="msgs">
116
+ <p class="bub" id="m1">שלום, כאן צוות האבטחה של הבנק</p>
117
+ <p class="bub" id="m2">זיהינו פעילות חריגה בחשבון שלכם</p>
118
+ <div class="bw" id="mw"><i class="rg" id="rg"></i><p class="bub" id="m3">כדי לאמת, שלחו לנו עכשיו את הקוד בן 6 הספרות שקיבלתם</p><i class="wn" id="wn3"></i></div>
119
+ </div>
120
+ <div class="inp"><i class="ln" style="right:34px;left:200px;top:33px"></i><i class="sb"></i></div>
121
+ </div>
122
+ <div class="hw" style="right:140px;top:200px"><i class="hl" id="hl1"></i><p id="h1" style="font-size:100px;font-weight:700">ביקשו מכם קוד?</p></div>
123
+ <p class="t" id="h2" style="right:140px;top:350px;font-size:46px">זה הרגע לעצור</p>
124
+ <div class="ltw" style="bottom:56px"><div class="lt" id="lt1"><i class="mk"></i><p id="lt1a">הודעה שמבקשת קוד היא</p><p class="em" id="lt1b">סימן אזהרה</p><i class="cu" id="lt1k"></i></div></div>
125
+ </div>
126
+ </section>
127
+ <section id="s2" class="clip scene" data-start="4" data-duration="4">
128
+ <div class="cam" id="c2">
129
+ <i class="bgl" style="left:-60px;top:990px;transform:rotate(-16deg)"></i>
130
+ <div class="card" id="cc" style="left:200px;top:190px;width:700px;height:580px">
131
+ <p class="t b" id="ch" style="right:50px;top:50px;font-size:50px">קוד אימות</p>
132
+ <p class="t gr" id="ch2" style="left:50px;top:62px;font-size:32px">תקף ל־5 דקות</p>
133
+ <div class="dgs" id="dgs"><i class="dg" data-d="4"></i><i class="dg" data-d="8"></i><i class="dg" data-d="2"></i><i class="dg" data-d="1"></i><i class="dg" data-d="9"></i><i class="dg" data-d="7"></i></div>
134
+ <p class="t gr c2" id="cw" style="top:430px;font-size:34px">אין למסור את הקוד לאף גורם</p>
135
+ <i class="ln" style="left:120px;right:120px;top:500px"></i><i class="ln" style="left:200px;right:200px;top:530px"></i>
136
+ </div>
137
+ <i class="tape" id="tp1" style="left:150px;top:180px;transform:rotate(-30deg)"></i><i class="tape" id="tp2" style="left:800px;top:180px;transform:rotate(30deg)"></i>
138
+ <div class="stamp" id="stp"><p id="stt">לא משתפים</p></div>
139
+ <p class="t b" id="h3" style="right:140px;top:200px;font-size:96px">את הקוד הזה</p>
140
+ <p class="lab r" id="h4" data-r="-1.5" style="right:140px;top:340px;font-size:76px">שומרים לעצמכם</p>
141
+ <p class="t" id="h5" style="right:140px;top:490px;font-size:44px">לא בצ׳אט, לא בשיחה ולא בהודעה</p>
142
+ <div class="ltw" style="bottom:56px"><div class="lt" id="lt2"><i class="mk"></i><p id="lt2a">גם לא</p><p class="em" id="lt2b">לנציג של הבנק</p><i class="cu" id="lt2k"></i></div></div>
143
+ </div>
144
+ </section>
145
+ <section id="s3" class="clip scene" data-start="8" data-duration="4.5">
146
+ <div class="cam" id="c3">
147
+ <div class="hw" style="right:180px;top:170px"><i class="hl" id="hl3"></i><p id="h6" style="font-size:100px;font-weight:700">שלושה צעדים פשוטים</p></div>
148
+ <div class="card st" id="sc0" style="right:180px;top:380px;width:480px;height:430px">
149
+ <p class="num" id="sn0">1</p><i class="sic i1"></i>
150
+ <p class="t b c2" id="sa0" style="top:250px;font-size:56px">עוצרים</p><p class="t c2 gr" id="sb0" style="top:330px;font-size:36px">לא עונים מיד</p></div>
151
+ <i class="tape" id="stp0" style="left:1630px;top:362px;transform:rotate(28deg)"></i>
152
+ <div class="card st" id="sc1" style="right:720px;top:380px;width:480px;height:430px">
153
+ <p class="num" id="sn1">2</p><i class="sic i2"></i>
154
+ <p class="t b c2" id="sa1" style="top:250px;font-size:56px">בודקים</p><p class="t c2 gr" id="sb1" style="top:330px;font-size:36px">מי באמת שלח?</p></div>
155
+ <i class="tape" id="stp1" style="left:730px;top:362px;transform:rotate(-28deg)"></i>
156
+ <div class="card st" id="sc2" style="right:1260px;top:380px;width:480px;height:430px">
157
+ <p class="num" id="sn2">3</p><i class="sic i3"></i>
158
+ <p class="t b c2" id="sa2" style="top:250px;font-size:56px">מתקשרים לבנק</p><p class="t c2 gr" id="sb2" style="top:330px;font-size:36px">ממספר שאתם מכירים</p></div>
159
+ <i class="tape" id="stp2" style="left:550px;top:362px;transform:rotate(28deg)"></i>
160
+ <svg class="arr" style="left:1210px" viewBox="0 0 60 60"><path class="ap" pathLength="1" d="M50 30H10M26 12L8 30l18 18"/></svg>
161
+ <svg class="arr" style="left:670px" viewBox="0 0 60 60"><path class="ap" pathLength="1" d="M50 30H10M26 12L8 30l18 18"/></svg>
162
+ <div class="ltw" style="bottom:56px"><div class="lt" id="lt3"><i class="mk"></i><p id="lt3a">קודם</p><p class="em" id="lt3b">עוצרים</p><p id="lt3c">ורק אז בודקים</p><i class="cu" id="lt3k"></i></div></div>
163
+ </div>
164
+ </section>
165
+ <section id="s4" class="clip scene" data-start="12.5" data-duration="3.5">
166
+ <div class="cam" id="c4">
167
+ <i class="dk"></i>
168
+ <i class="halo" id="halo"></i>
169
+ <i class="glw lock" id="lock"></i>
170
+ <div class="cx" style="top:470px"><p class="dkt" id="e1" style="font-size:100px;font-weight:700;color:var(--card)">קוד אישי</p><p id="e2" style="font-size:100px;font-weight:700;color:var(--glow)">נשאר אישי</p></div>
171
+ <p class="t dkt c2" id="e3" style="top:620px;font-size:44px;color:color-mix(in srgb,var(--card) 80%,var(--ink))">לעולם לא נבקש מכם קוד בהודעה או בשיחה</p>
172
+ <div class="pill" id="cta" style="left:690px;top:740px;width:540px;height:108px"><p id="ctat" style="font-size:46px">בכל ספק, מתקשרים אלינו</p></div>
173
+ </div>
174
+ </section>
175
+ <div id="ov" class="clip ov" data-start="0" data-duration="16">
176
+ <div class="brand" id="brand"><i></i><p id="brt">המותג שלכם</p></div>
177
+ </div>
178
+ </div>
179
+ <script>
180
+ const tl=gsap.timeline({paused:true});
181
+ const S=[0,4,8,12.5,16],D=16;
182
+ const X="expo.out",P="power3.out",B="back.out(1.7)",E="power2.inOut";
183
+ function sIn(i){tl.fromTo("#c"+(i+1),{opacity:0},{opacity:1,duration:.35,ease:"power1.out"},S[i]);}
184
+ function sOut(i){tl.to("#c"+(i+1),{opacity:0,duration:.35,ease:"power1.in"},S[i+1]-.35);}
185
+ function LT(id,t){tl.fromTo("#"+id,{y:50,opacity:0},{y:0,opacity:1,duration:.5,ease:P},t);
186
+ tl.fromTo("#"+id+" p",{clipPath:"inset(-30% 0% -30% 100%)"},{clipPath:"inset(-30% 0% -30% 0%)",duration:.55,ease:"none",stagger:.5},t+.2);
187
+ tl.fromTo("#"+id+"k",{opacity:1},{opacity:0,duration:.05,repeat:5,yoyo:true,repeatDelay:.25,ease:"none"},t+.3);}
188
+ function HL(sel,t){tl.fromTo(sel,{scaleX:0},{scaleX:1,duration:.5,ease:P},t);}
189
+ function UP(sel,t,st){tl.fromTo(sel,{y:40,opacity:0},{y:0,opacity:1,duration:.6,ease:P,stagger:st||0},t);}
190
+ function LAB(sel,t,st){tl.fromTo(sel,{x:60,opacity:0,rotation:-4},{x:0,opacity:1,rotation:(i,e)=>+(e.dataset.r||0),duration:.5,ease:B,stagger:st||.15},t);}
191
+ function DRAW(sel,t,d,st){tl.fromTo(sel,{strokeDasharray:1,strokeDashoffset:1},{strokeDashoffset:0,duration:d||.8,ease:E,stagger:st||0,autoRound:false},t);}
192
+ tl.fromTo("#brand",{opacity:0,y:-20},{opacity:1,y:0,duration:.5,ease:P},.2);
193
+
194
+ // s1 suspicious chat
195
+ sIn(0);
196
+ tl.fromTo("#wn",{y:90,opacity:0},{y:0,opacity:1,duration:.8,ease:X},S[0]+.05);
197
+ tl.fromTo(["#m1","#m2","#m3"],{scale:.6,opacity:0,transformOrigin:"100% 0%"},{scale:1,opacity:1,duration:.45,ease:B,stagger:.55},S[0]+.6);
198
+ tl.fromTo("#rg",{scale:1.25,opacity:0},{scale:1,opacity:1,duration:.4,ease:P},S[0]+2.1);
199
+ tl.fromTo("#wn3",{scale:0,rotation:-60},{scale:1,rotation:0,duration:.45,ease:B},S[0]+2.3);
200
+ UP("#h1",S[0]+.2);HL("#hl1",S[0]+.7);UP("#h2",S[0]+.5);
201
+ LT("lt1",S[0]+.9);
202
+ sOut(0);
203
+ // s2 code card + stamp slam
204
+ sIn(1);
205
+ tl.fromTo("#cc",{y:90,opacity:0,rotation:2},{y:0,opacity:1,rotation:-1.5,duration:.8,ease:X},S[1]+.05);
206
+ tl.fromTo(["#tp1","#tp2"],{opacity:0,scale:1.6},{opacity:1,scale:1,duration:.35,ease:P,stagger:.1},S[1]+.5);
207
+ tl.fromTo("#dgs .dg",{y:30,opacity:0},{y:0,opacity:1,duration:.35,ease:B,stagger:.07},S[1]+.5);
208
+ tl.fromTo("#stp",{scale:2.4,opacity:0,rotation:-18},{scale:1,opacity:1,rotation:-7,duration:.3,ease:"power4.in"},S[1]+1.6);
209
+ tl.fromTo("#cc",{x:0},{keyframes:[{x:-10,duration:.05},{x:8,duration:.05},{x:-4,duration:.05},{x:0,duration:.05}],immediateRender:false},S[1]+1.9);
210
+ UP("#h3",S[1]+.2);LAB("#h4",S[1]+.5);UP("#h5",S[1]+.9);
211
+ LT("lt2",S[1]+1.1);
212
+ sOut(1);
213
+ // s3 three steps
214
+ sIn(2);
215
+ UP("#h6",S[2]+.1);HL("#hl3",S[2]+.6);
216
+ tl.fromTo("#c3 .st",{y:80,opacity:0,rotation:-2},{y:0,opacity:1,rotation:0,duration:.6,ease:X,stagger:.45},S[2]+.4);
217
+ tl.fromTo("#c3 .tape",{opacity:0,scale:1.6},{opacity:1,scale:1,duration:.3,ease:P,stagger:.45},S[2]+.8);
218
+ tl.fromTo("#c3 .sic",{scale:0},{scale:1,duration:.45,ease:B,stagger:.45},S[2]+.7);
219
+ DRAW("#c3 .ap",S[2]+1.1,.4,.45);
220
+ LT("lt3",S[2]+1.4);
221
+ sOut(2);
222
+ // s4 dark close with glowing lock tile
223
+ sIn(3);
224
+ tl.fromTo("#halo",{scale:.4,opacity:0},{scale:1,opacity:1,duration:1.2,ease:"sine.out"},S[3]+.1);
225
+ tl.fromTo("#lock",{scale:0,rotation:-15},{scale:1,rotation:0,duration:.7,ease:B},S[3]+.2);
226
+ tl.fromTo("#lock",{scale:1},{scale:1.06,duration:.6,yoyo:true,repeat:1,ease:"sine.inOut",immediateRender:false},S[3]+1.1);
227
+ UP(["#e1","#e2"],S[3]+.6,.15);UP("#e3",S[3]+1);
228
+ tl.fromTo("#cta",{scale:.6,opacity:0},{scale:1,opacity:1,duration:.5,ease:B},S[3]+1.3);
229
+ tl.set({},{},D);
230
+ window.__timelines=window.__timelines||{};window.__timelines["bank-code-never"]=tl;
231
+ </script>
232
+ </body>
233
+ </html>
@@ -0,0 +1,189 @@
1
+ <!doctype html>
2
+ <html lang="he" dir="rtl">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=1920, height=1080">
6
+ <title>רגע לפני שמחליטים</title>
7
+ <script src="vendor/gsap.min.js"></script>
8
+ <style>
9
+ @font-face{font-family:"Heebo";font-weight:400;src:url(fonts/heebo-hebrew-400-normal.woff2) format("woff2");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
10
+ @font-face{font-family:"Heebo";font-weight:400;src:url(fonts/heebo-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F}
11
+ @font-face{font-family:"Heebo";font-weight:700;src:url(fonts/heebo-hebrew-700-normal.woff2) format("woff2");unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}
12
+ @font-face{font-family:"Heebo";font-weight:700;src:url(fonts/heebo-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F}
13
+ :root{--bg:#F4F4F2;--fg:#141A26;--accent:#E3063B;--card:#FFFFFF;--dark:#16181D;--glow:#FF3B5C}
14
+ *{box-sizing:border-box;margin:0;padding:0}
15
+ html,body{width:1920px;height:1080px;overflow:hidden;background:var(--bg)}
16
+ body{font-family:"Heebo",Arial,sans-serif;-webkit-font-smoothing:antialiased}
17
+ #root{position:relative;width:1920px;height:1080px;overflow:hidden;background:var(--bg);color:var(--fg);direction:rtl;font-family:"Heebo",Arial,sans-serif}
18
+ .scene{position:absolute;inset:0;overflow:hidden}
19
+ .cam,.layer{position:absolute;inset:0}
20
+ .abs{position:absolute}
21
+ .m{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .05em .08em}
22
+ .w{display:inline-block;white-space:nowrap}
23
+ .t{position:absolute;white-space:nowrap;line-height:1.15;color:var(--fg)}
24
+ .c{left:0;right:0;text-align:center}
25
+ .cw{position:absolute;left:0;right:0;display:flex;justify-content:center}
26
+ .row{display:flex;gap:.26em;align-items:baseline;white-space:nowrap;line-height:1.15;font-weight:700;color:var(--fg)}
27
+ .em{color:var(--accent)}
28
+ .hw{position:relative}
29
+ .hw p{position:relative}
30
+ .hb{position:absolute;left:-.1em;right:-.1em;bottom:.08em;height:.34em;background:color-mix(in srgb,var(--accent) 24%,transparent)}
31
+ .pl{position:absolute;background:color-mix(in srgb,var(--card) 62%,transparent)}
32
+ .brand{position:absolute;top:36px;right:44px;height:54px;padding:0 22px;border-radius:27px;background:var(--card);display:flex;align-items:center;gap:12px;box-shadow:0 6px 18px color-mix(in srgb,var(--fg) 12%,transparent)}
33
+ .brand .bm{width:16px;height:16px;border-radius:3px;background:var(--accent)}
34
+ .brand p{font-size:26px;font-weight:700;color:var(--fg);white-space:nowrap}
35
+ .capw{position:absolute;left:0;right:0;bottom:58px;display:flex;justify-content:center}
36
+ .cap{display:flex;align-items:center;gap:14px;background:var(--card);border-radius:12px;padding:16px 28px;box-shadow:0 10px 28px color-mix(in srgb,var(--fg) 14%,transparent)}
37
+ .cap .mk{flex:none;width:16px;height:16px;background:var(--accent)}
38
+ .cap .ct{display:flex;gap:.26em;overflow:hidden;min-width:0;font-size:40px;line-height:1.3;white-space:nowrap;color:var(--fg)}
39
+ .cap .ct .em{font-weight:700}
40
+ .cap .cur{flex:none;width:12px;height:40px;background:var(--fg)}
41
+ .card{position:absolute;background:var(--card);border-radius:10px;box-shadow:0 24px 54px color-mix(in srgb,var(--fg) 13%,transparent),0 2px 6px color-mix(in srgb,var(--fg) 8%,transparent)}
42
+ .tape{position:absolute;z-index:2;width:120px;height:32px;background:var(--accent);opacity:.94}
43
+ .tape::after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;margin:-3.5px;background:var(--card)}
44
+ .tl{top:-6px;left:-34px;transform:rotate(-36deg)}
45
+ .tr{top:-6px;right:-34px;transform:rotate(36deg)}
46
+ .ln{display:block;height:12px;border-radius:6px;background:color-mix(in srgb,var(--mute) 38%,var(--card));margin-top:18px}
47
+ .ln.r{background:color-mix(in srgb,var(--accent) 45%,var(--card))}
48
+ .lab{position:absolute;padding:6px 24px 12px;font-size:46px;font-weight:700;white-space:nowrap;line-height:1.2;background:var(--card);color:var(--fg);box-shadow:0 8px 20px color-mix(in srgb,var(--fg) 12%,transparent)}
49
+ .lab.r{background:var(--accent);color:var(--card)}
50
+ .win{position:absolute;background:var(--card);border-radius:12px;overflow:hidden;box-shadow:0 24px 54px color-mix(in srgb,var(--fg) 14%,transparent)}
51
+ .win .wb{height:44px;background:var(--fg);display:flex;align-items:center;gap:10px;padding:0 18px;direction:ltr}
52
+ .win .wb i{width:12px;height:12px;border-radius:50%;background:color-mix(in srgb,var(--card) 50%,var(--fg))}
53
+ .fig{position:absolute;width:200px;height:300px}
54
+ .fig .hd{position:absolute;left:55px;top:0;width:90px;height:90px;border-radius:50%;background:color-mix(in srgb,var(--fg) 82%,var(--card))}
55
+ .fig .bd{position:absolute;left:0;top:104px;width:200px;height:196px;border-radius:100px 100px 14px 14px;background:var(--fg)}
56
+ .fig .nk{position:absolute;left:78px;top:104px;width:44px;height:58px;background:var(--card);clip-path:polygon(0 0,100% 0,50% 100%)}
57
+ .fig.a .bd{background:var(--accent)}
58
+ .fig.m .bd{background:var(--mute)}
59
+ .endmk{width:64px;height:64px;border-radius:8px;background:var(--accent)}
60
+ .ebox{border:5px solid var(--fg);background:var(--card);padding:4px 38px 14px;font-weight:700;white-space:nowrap;line-height:1.2;color:var(--fg)}
61
+ .cta{display:flex;align-items:center;gap:14px;height:84px;padding:0 40px;border-radius:42px;background:var(--fg)}
62
+ .cta i{width:16px;height:16px;background:var(--accent)}
63
+ .cta p{font-size:36px;font-weight:700;color:var(--card);white-space:nowrap}
64
+ .fine{font-size:24px;color:color-mix(in srgb,var(--fg) 58%,var(--bg))}
65
+ .ck{fill:none;stroke:var(--accent);stroke-width:9;stroke-linecap:round;stroke-linejoin:round}
66
+
67
+ .ch{position:absolute;left:60px;top:80px;width:780px;height:360px;overflow:visible}
68
+ .ch .gl{stroke:color-mix(in srgb,var(--fg) 12%,var(--card));stroke-width:3}
69
+ .ch polyline{fill:none;stroke:var(--fg);stroke-width:7;stroke-linejoin:round;stroke-linecap:round}
70
+ .ch circle{fill:var(--accent)}
71
+ .dk{position:absolute;inset:0;background:var(--dark)}
72
+ .glw{position:absolute;left:300px;top:300px;width:480px;height:480px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--glow) 60%,transparent) 0,color-mix(in srgb,var(--glow) 18%,transparent) 45%,transparent 70%)}
73
+ .core{position:absolute;left:420px;top:420px;width:240px;height:240px;border-radius:50%;background:var(--glow);box-shadow:0 0 70px 20px color-mix(in srgb,var(--glow) 55%,transparent),0 0 180px 60px color-mix(in srgb,var(--glow) 22%,transparent)}
74
+ .kmk{position:absolute;right:200px;overflow:hidden;padding:0 .1em}
75
+ .kt{font-weight:700;color:var(--card);white-space:nowrap;line-height:1.3}
76
+ .kt.g{color:var(--glow)}
77
+ .uln{position:absolute;left:610px;top:640px;width:700px;height:22px;border-radius:11px;background:var(--glow);box-shadow:0 0 50px 12px color-mix(in srgb,var(--glow) 45%,transparent)}
78
+ .ci{position:absolute;right:80px;display:flex;align-items:center;gap:28px}
79
+ .ci p{font-size:50px;color:var(--fg);white-space:nowrap}
80
+ .bx{display:block;width:60px;height:60px;border:5px solid var(--fg);border-radius:8px;position:relative}
81
+ .bx svg{position:absolute;left:-5px;top:-5px;width:60px;height:60px;overflow:visible}
82
+ .fl{position:absolute;inset:0;background:var(--card)}
83
+ </style>
84
+ </head>
85
+ <body>
86
+ <div id="root" data-composition-id="bank-dark-interlude" data-start="0" data-width="1920" data-height="1080" data-duration="15">
87
+ <section id="s1" class="clip scene" data-start="0" data-duration="3.6">
88
+ <div class="cam" id="c1">
89
+ <i class="pl" style="left:-300px;top:-400px;width:860px;height:1800px;transform:rotate(33deg)"></i>
90
+ <div class="card" id="cc" style="left:140px;top:220px;width:900px;height:520px"><i class="tape tl"></i>
91
+ <svg class="ch" viewBox="0 0 780 360"><line class="gl" x1="0" y1="60" x2="780" y2="60"/><line class="gl" x1="0" y1="180" x2="780" y2="180"/><line class="gl" x1="0" y1="300" x2="780" y2="300"/><polyline id="mkl" pathLength="1" points="0,250 70,190 120,280 190,120 250,230 320,90 380,260 450,150 510,300 580,110 640,210 700,60 780,170"/><circle id="dot" cx="780" cy="170" r="16"/></svg>
92
+ </div>
93
+ <p class="lab" id="lb1" style="left:560px;top:176px;transform:rotate(-3deg)">כותרות</p>
94
+ <p class="lab r" id="lb2" style="left:880px;top:660px;transform:rotate(2deg)">רעש</p>
95
+ <div class="row" style="position:absolute;right:140px;top:300px;font-size:110px"><p id="h1a">השוק</p><div class="hw"><i class="hb" id="hb-h1b"></i><p id="h1b" class="em">עולה</p></div></div>
96
+ <p class="t" id="h1c" style="right:140px;top:430px;font-size:110px;font-weight:700">ויורד</p>
97
+ <p class="t" id="h1d" style="right:140px;top:590px;font-size:44px;color:color-mix(in srgb,var(--fg) 55%,var(--bg))">ומה אתם עושים?</p>
98
+ <div class="capw"><div class="cap" id="cap1"><i class="mk"></i><div class="ct" id="ct1"><p id="cp1a">כשהשוק קופץ,</p><p id="cp1b" class="em">הכותרות צועקות</p></div><i class="cur" id="cu1"></i></div></div>
99
+ </div>
100
+ </section>
101
+ <section id="s2" class="clip scene" data-start="3.6" data-duration="4">
102
+ <div class="cam" id="c2">
103
+ <div class="dk"></div>
104
+ <i class="glw" id="glw"></i><i class="core" id="core"></i>
105
+ <div class="kmk" style="top:250px;height:169px"><p class="kt" id="k1" style="font-size:130px">רגע.</p></div>
106
+ <div class="kmk" style="top:440px;height:130px"><p class="kt" id="k2" style="font-size:100px">לפני שמחליטים</p></div>
107
+ <div class="kmk" style="top:600px;height:169px"><p class="kt g" id="k3" style="font-size:130px">נושמים.</p></div>
108
+ </div>
109
+ </section>
110
+ <section id="s3" class="clip scene" data-start="7.6" data-duration="3.8">
111
+ <div class="cam" id="c3">
112
+ <div class="dk"></div>
113
+ <i class="glw" id="glw3" style="left:720px;top:420px;width:480px;height:480px"></i>
114
+ <p class="t c kt" id="k4" style="top:300px;font-size:92px">לא מתזמנים את השוק.</p>
115
+ <div class="cw" style="top:450px"><div class="row" style="font-size:120px"><p id="k5" class="kt">בונים</p><p id="k6" class="kt g">תוכנית.</p></div></div>
116
+ <i class="uln" id="uln"></i>
117
+ <div class="capw"><div class="cap" id="cap3"><i class="mk"></i><div class="ct" id="ct3"><p id="cp3a">פחות רעש,</p><p id="cp3b" class="em">יותר תוכנית</p></div><i class="cur" id="cu3"></i></div></div>
118
+ </div>
119
+ </section>
120
+ <section id="s4" class="clip scene" data-start="11.4" data-duration="3.6">
121
+ <div class="cam" id="c4">
122
+ <i class="pl" style="left:1300px;top:-400px;width:800px;height:1800px;transform:rotate(-30deg)"></i>
123
+ <div class="card" id="sm" style="left:510px;top:130px;width:900px;height:580px"><i class="tape tl"></i><i class="tape tr"></i>
124
+ <div class="row" style="position:absolute;right:80px;top:60px;font-size:72px"><p id="s1a">השורה</p><div class="hw"><i class="hb" id="hb-s1b"></i><p id="s1b" class="em">התחתונה</p></div></div>
125
+ <div class="ci" style="top:200px"><i class="bx"><svg viewBox="0 0 60 60"><polyline class="ck" id="tk0" pathLength="1" points="12,31 25,44 49,15"/></svg></i><p id="ck0">מגדירים מטרה</p></div><div class="ci" style="top:304px"><i class="bx"><svg viewBox="0 0 60 60"><polyline class="ck" id="tk1" pathLength="1" points="12,31 25,44 49,15"/></svg></i><p id="ck1">מפזרים סיכון</p></div><div class="ci" style="top:408px"><i class="bx"><svg viewBox="0 0 60 60"><polyline class="ck" id="tk2" pathLength="1" points="12,31 25,44 49,15"/></svg></i><p id="ck2">חושבים לטווח ארוך</p></div>
126
+ <p class="t fine" id="fn" style="right:80px;top:516px">אין באמור ייעוץ השקעות</p>
127
+ </div>
128
+ <div class="capw"><div class="cap" id="cap4"><i class="mk"></i><div class="ct" id="ct4"><p id="cp4a">תוכנית טובה</p><p id="cp4b" class="em">שווה יותר מתזמון</p></div><i class="cur" id="cu4"></i></div></div>
129
+ <i class="fl" id="fl"></i>
130
+ </div>
131
+ </section>
132
+ <div id="ov" class="clip" data-start="0" data-duration="15">
133
+ <div class="brand" id="brw"><i class="bm"></i><p id="brand">המותג שלכם</p></div>
134
+ </div>
135
+ </div>
136
+ <script>
137
+ const tl=gsap.timeline({paused:true});
138
+ const S=[0,3.6,7.6,11.4,15],D=15;
139
+ const P="power3.out",X="expo.out",B="back.out(1.7)";
140
+ tl.fromTo("#brw",{opacity:0,y:-16},{opacity:1,y:0,duration:.5,ease:P},.15);
141
+ function capIn(n,at,W,E){tl.fromTo("#cap"+n,{opacity:0,y:24},{opacity:1,y:0,duration:.35,ease:"power2.out"},at);const d=Math.min(1.3,W/700),t0=at+.3;
142
+ tl.fromTo("#ct"+n,{maxWidth:0},{maxWidth:W,duration:d,ease:"steps("+Math.max(8,Math.round(W/28))+")"},t0);
143
+ let r=Math.floor((E-t0-d-.45)/.24);if(r%2===0)r--;if(r>0)tl.fromTo("#cu"+n,{opacity:1},{opacity:0,duration:.24,repeat:r,yoyo:true,ease:"steps(1)"},t0+d);}
144
+ function hl(id,at){tl.fromTo("#hb-"+id,{scaleX:0,transformOrigin:"100% 50%"},{scaleX:1,duration:.5,ease:"power2.inOut"},at);}
145
+ function draw(sel,at,d,e){tl.fromTo(sel,{strokeDasharray:1,strokeDashoffset:1},{strokeDashoffset:0,duration:d,ease:e||"power2.inOut",autoRound:false},at);}
146
+ function fadeOut(i,d){tl.to("#c"+(i+1),{opacity:0,duration:d||.35,ease:"power1.in"},S[i+1]-(d||.35));}
147
+ function camIn(i){tl.fromTo("#c"+(i+1),{opacity:0},{opacity:1,duration:.3},S[i]);}
148
+
149
+ // s1 light opener, jumpy market line
150
+ camIn(0);
151
+ tl.fromTo("#cc",{y:100,opacity:0,rotation:-3},{y:0,opacity:1,rotation:-1,duration:.7,ease:X},S[0]+.05);
152
+ tl.fromTo("#cc .tape",{scale:0},{scale:1,duration:.3,ease:B},S[0]+.5);
153
+ draw("#mkl",S[0]+.5,1.4,"none");
154
+ tl.fromTo("#dot",{scale:0,transformOrigin:"50% 50%"},{scale:1,duration:.3,ease:B},S[0]+1.9);
155
+ tl.fromTo(["#lb1","#lb2"],{scale:.4,opacity:0},{scale:1,opacity:1,duration:.4,ease:B,stagger:.5},S[0]+.9);
156
+ tl.fromTo(["#h1a","#h1b","#h1c"],{opacity:0,y:50},{opacity:1,y:0,duration:.5,ease:P,stagger:.14},S[0]+.2);
157
+ hl("h1b",S[0]+.75);
158
+ tl.fromTo("#h1d",{opacity:0},{opacity:1,duration:.4},S[0]+1.1);
159
+ tl.fromTo("#c1",{x:0},{keyframes:[{x:-8,duration:.05},{x:7,duration:.05},{x:-5,duration:.05},{x:0,duration:.05}]},S[0]+2.2);
160
+ capIn(1,S[0]+1.2,640,S[1]);
161
+ // s2 hard cut to dark, glowing shape breathes, kinetic statement
162
+ tl.fromTo("#core",{scale:.2,opacity:0},{scale:1,opacity:1,duration:1,ease:"power2.out"},S[1]+.1);
163
+ tl.fromTo("#glw",{scale:.4,opacity:0},{scale:1,opacity:1,duration:1.2,ease:"power2.out"},S[1]+.1);
164
+ tl.to(["#core","#glw"],{scale:1.12,duration:.9,ease:"sine.inOut",yoyo:true,repeat:2},S[1]+1.2);
165
+ tl.fromTo("#k1",{yPercent:110},{yPercent:0,duration:.6,ease:X},S[1]+.5);
166
+ tl.fromTo("#k2",{yPercent:110},{yPercent:0,duration:.6,ease:X},S[1]+1.2);
167
+ tl.fromTo("#k3",{yPercent:110},{yPercent:0,duration:.6,ease:X},S[1]+1.9);
168
+ tl.to(["#k1","#k2","#k3"],{yPercent:-110,duration:.4,ease:"power2.in",stagger:.06},S[2]-.55);
169
+ // s3 dark, the glow stretches into an underline
170
+ tl.fromTo("#glw3",{scaleX:.5,scaleY:.5,opacity:1},{scaleX:2.2,scaleY:.35,opacity:.8,duration:.8,ease:"power2.inOut"},S[2]);
171
+ tl.fromTo("#k4",{opacity:0,y:30},{opacity:1,y:0,duration:.5,ease:P},S[2]+.2);
172
+ tl.fromTo(["#k5","#k6"],{opacity:0,y:40},{opacity:1,y:0,duration:.5,ease:P,stagger:.15},S[2]+.6);
173
+ tl.fromTo("#uln",{scaleX:0,transformOrigin:"100% 50%"},{scaleX:1,duration:.7,ease:"power2.inOut"},S[2]+1);
174
+ capIn(3,S[2]+1.4,520,S[3]);
175
+ // s4 cut back to light summary
176
+ tl.fromTo("#fl",{opacity:1},{opacity:0,duration:.35,ease:"power1.out"},S[3]);
177
+ tl.fromTo("#sm",{y:80,opacity:0},{y:0,opacity:1,duration:.6,ease:X},S[3]+.1);
178
+ tl.fromTo("#sm .tape",{scale:0},{scale:1,duration:.3,ease:B,stagger:.1},S[3]+.5);
179
+ tl.fromTo(["#s1a","#s1b"],{opacity:0,y:30},{opacity:1,y:0,duration:.45,ease:P,stagger:.1},S[3]+.3);
180
+ hl("s1b",S[3]+.7);
181
+ tl.fromTo(".ci",{opacity:0,x:-40},{opacity:1,x:0,duration:.4,ease:P,stagger:.15},S[3]+.5);
182
+ for(let k=0;k<3;k++)draw("#tk"+k,S[3]+1+k*.3,.3,"power1.out");
183
+ tl.fromTo("#fn",{opacity:0},{opacity:1,duration:.4},S[3]+1.6);
184
+ capIn(4,S[3]+1.3,620,S[3]+3.6);
185
+ tl.set({},{},D);
186
+ window.__timelines=window.__timelines||{};window.__timelines["bank-dark-interlude"]=tl;
187
+ </script>
188
+ </body>
189
+ </html>