feat: redesign the pre-seed and seed verification screens
What changed, and why it matters
This commit is a user-interface redesign for the screens that introduce and verify the wallet's recovery seed phrase. It adds new pages, moves image assets, updates navigation, and changes some labels. There is no direct evidence in the diff of a security vulnerability; it appears to be a normal feature/refactoring change.
No immediate security action required. As with any UI refactor touching seed-phrase flows, reviewers should verify in follow-up commits that the new pages do not accidentally bypass authentication, log the seed, or expose it to accessibility services/screenshots, and that the `markSeedVerified` and `updateShowSeedBackupReminder` calls behave correctly.
Security signals we found
UI-only redesign with no cryptographic or storage logic changes visible in the diff
New disclaimer page (`ShowKeysDisclaimerPage`) still delegates authentication to existing `AuthService.authenticateAction` with the same 2FA condition
Pre-seed flow now requires explicit user acknowledgements before showing the recovery phrase
Skip flow explicitly records `updateShowSeedBackupReminder(true)` to remind users later
No new network, file-system, or native API calls introduced
Evidence from the diff
The commit refactors the pre-seed and seed-verification flows in the Cake Wallet Flutter app. It deletes the old PreSeedPage implementation under lib/src/screens/seed/, introduces new new-ui/pages/seed/* pages (pre_seed_page, show_keys_disclaimer_page, skip_seed_verification_page, open_wallet_after_seed_flow), adds reusable widgets (SeedCheckboxRow, SeedHeroImage, SeedPageHeader, SeedPageScaffold, StackedButtons), moves SVG assets from assets/images/ to res/pictures/, updates DI/router registrations, and changes settings navigation to a new disclaimer page. The new PreSeedPage requires users to acknowledge three security reminders before proceeding and offers a skip path that sets a backup reminder flag. The verification success screen now calls walletSeedViewModel.markSeedVerified() and branches on isNewWalletCreated.
Changed components
lib/new-ui/pages/seed/*lib/new-ui/widgets/seed/*lib/src/screens/seed/seed_verification/*lib/src/screens/seed/wallet_seed_page.dartlib/src/screens/new_wallet/wallet_group_existing_seed_description_page.dartlib/new-ui/pages/settings_page.dartlib/di.dartlib/router.dartlib/routes.dartres/pictures/hero/*res/pictures/key.svgres/pictures/visibility.svgres/pictures/warning_triangle.svgInspect captured patch +992 / −253
diff --git a/assets/images/seed_warning_dark.svg b/assets/images/seed_warning_dark.svg
deleted file mode 100644
index 0a47254..0000000
--- a/assets/images/seed_warning_dark.svg
+++ /dev/null
@@ -1,86 +0,0 @@
-<svg width="260" height="298" viewBox="0 0 260 298" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M119.655 6.27832C126.055 3.53578 133.272 3.45033 139.723 6.02148L140.345 6.27832L243.044 50.293C252.699 54.431 258.96 63.925 258.96 74.4297V128.542C258.96 175.815 236.309 220.2 198.085 247.94L197.18 248.593L145.264 285.676C136.276 292.096 124.25 292.197 115.167 285.978L114.736 285.676L62.8203 248.593C24.0499 220.899 1.04004 176.187 1.04004 128.542V74.4297C1.04004 64.0891 7.10644 54.7283 16.5059 50.4912L16.9561 50.293L119.655 6.27832Z" stroke="#708BF4" stroke-opacity="0.05" stroke-width="2.08"/>
-<path d="M120.451 17.2793C126.358 14.7477 133.02 14.6687 138.975 17.042L139.549 17.2793L234.349 57.9082C243.261 61.7279 249.04 70.491 249.04 80.1875V130.138C249.04 173.775 228.131 214.745 192.848 240.352L192.012 240.954L144.089 275.185C135.792 281.111 124.692 281.204 116.308 275.463L115.911 275.185L67.9883 240.954C32.2001 215.391 10.96 174.118 10.96 130.138V80.1875C10.9601 70.6424 16.56 62.0019 25.2363 58.0908L25.6514 57.9082L120.451 17.2793Z" stroke="#708BF4" stroke-opacity="0.15" stroke-width="1.92"/>
-<path d="M121.294 28.3906C126.68 26.0825 132.754 26.0099 138.183 28.1738L138.706 28.3906L225.605 65.6328C233.731 69.1153 239 77.1057 239 85.9463V131.733C239 171.381 220.152 208.625 188.301 232.109L186.774 233.218L142.846 264.596C135.282 269.999 125.161 270.083 117.517 264.849L117.154 264.596L73.2256 233.218C40.4513 209.807 21 172.01 21 131.733V85.9463C21 77.2438 26.1053 69.3657 34.0156 65.7998L34.3945 65.6328L121.294 28.3906Z" stroke="#708BF4" stroke-opacity="0.5" stroke-width="2"/>
-<path d="M77.8584 226.327L117.794 254.853C125.096 260.068 134.904 260.068 142.206 254.853L182.141 226.327C212.176 204.874 230 170.238 230 133.329V91.7045C230 83.3039 224.994 75.7116 217.272 72.4024L138.272 38.5453C132.99 36.2813 127.01 36.2813 121.728 38.5453L42.7277 72.4024C35.0063 75.7116 30 83.3039 30 91.7045V133.329C30 170.238 47.8247 204.874 77.8584 226.327Z" fill="black"/>
-<path d="M77.8584 226.327L117.794 254.853C125.096 260.068 134.904 260.068 142.206 254.853L182.141 226.327C212.176 204.874 230 170.238 230 133.329V91.7045C230 83.3039 224.994 75.7116 217.272 72.4024L138.272 38.5453C132.99 36.2813 127.01 36.2813 121.728 38.5453L42.7277 72.4024C35.0063 75.7116 30 83.3039 30 91.7045V133.329C30 170.238 47.8247 204.874 77.8584 226.327Z" fill="url(#paint0_linear_4659_24215)"/>
-<path d="M123.479 42.6299C127.513 40.9009 132.063 40.8476 136.13 42.4688L136.521 42.6299L215.521 76.4873C221.609 79.0961 225.556 85.0816 225.556 91.7041V133.329C225.556 168.248 208.955 201.051 180.902 221.734L179.559 222.711L139.623 251.236C134.047 255.22 126.615 255.344 120.923 251.609L120.377 251.236L80.4414 222.711C51.5757 202.092 34.4443 168.802 34.4443 133.329V91.7041C34.4445 85.2886 38.1486 79.4713 43.9141 76.7422L44.4785 76.4873L123.479 42.6299Z" stroke="url(#paint1_linear_4659_24215)" stroke-width="8.88889"/>
-<path d="M123.479 42.6299C127.513 40.9009 132.063 40.8476 136.13 42.4688L136.521 42.6299L215.521 76.4873C221.609 79.0961 225.556 85.0816 225.556 91.7041V133.329C225.556 168.248 208.955 201.051 180.902 221.734L179.559 222.711L139.623 251.236C134.047 255.22 126.615 255.344 120.923 251.609L120.377 251.236L80.4414 222.711C51.5757 202.092 34.4443 168.802 34.4443 133.329V91.7041C34.4445 85.2886 38.1486 79.4713 43.9141 76.7422L44.4785 76.4873L123.479 42.6299Z" stroke="url(#paint2_linear_4659_24215)" stroke-width="8.88889"/>
-<path d="M123.479 42.6299C127.513 40.9009 132.063 40.8476 136.13 42.4688L136.521 42.6299L215.521 76.4873C221.609 79.0961 225.556 85.0816 225.556 91.7041V133.329C225.556 168.248 208.955 201.051 180.902 221.734L179.559 222.711L139.623 251.236C134.047 255.22 126.615 255.344 120.923 251.609L120.377 251.236L80.4414 222.711C51.5757 202.092 34.4443 168.802 34.4443 133.329V91.7041C34.4445 85.2886 38.1486 79.4713 43.9141 76.7422L44.4785 76.4873L123.479 42.6299Z" stroke="url(#paint3_linear_4659_24215)" stroke-width="8.88889"/>
-<g filter="url(#filter0_i_4659_24215)">
-<path d="M77.8584 226.327L117.794 254.853C125.096 260.068 134.904 260.068 142.206 254.853L182.141 226.327C212.176 204.874 230 170.238 230 133.329V91.7045C230 83.3039 224.994 75.7116 217.272 72.4024L138.272 38.5453C132.99 36.2813 127.01 36.2813 121.728 38.5453L42.7277 72.4024C35.0063 75.7116 30 83.3039 30 91.7045V133.329C30 170.238 47.8247 204.874 77.8584 226.327Z" fill="black" fill-opacity="0.01"/>
-</g>
-<g filter="url(#filter1_ii_4659_24215)">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.25C163.158 154.25 175.75 141.658 175.75 126.125C175.75 110.592 163.158 98 147.625 98C132.092 98 119.5 110.592 119.5 126.125C119.5 131.628 121.081 136.763 123.813 141.098L85.6611 179.25L104.393 197.982L113.232 189.143L103.339 179.25L113.25 169.339L123.143 179.232L131.982 170.393L122.089 160.5L132.652 149.937C136.987 152.669 142.122 154.25 147.625 154.25ZM147.625 141.75C156.254 141.75 163.25 134.754 163.25 126.125C163.25 117.496 156.254 110.5 147.625 110.5C138.996 110.5 132 117.496 132 126.125C132 134.754 138.996 141.75 147.625 141.75Z" fill="black"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.25C163.158 154.25 175.75 141.658 175.75 126.125C175.75 110.592 163.158 98 147.625 98C132.092 98 119.5 110.592 119.5 126.125C119.5 131.628 121.081 136.763 123.813 141.098L85.6611 179.25L104.393 197.982L113.232 189.143L103.339 179.25L113.25 169.339L123.143 179.232L131.982 170.393L122.089 160.5L132.652 149.937C136.987 152.669 142.122 154.25 147.625 154.25ZM147.625 141.75C156.254 141.75 163.25 134.754 163.25 126.125C163.25 117.496 156.254 110.5 147.625 110.5C138.996 110.5 132 117.496 132 126.125C132 134.754 138.996 141.75 147.625 141.75Z" fill="url(#paint4_linear_4659_24215)"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.25C163.158 154.25 175.75 141.658 175.75 126.125C175.75 110.592 163.158 98 147.625 98C132.092 98 119.5 110.592 119.5 126.125C119.5 131.628 121.081 136.763 123.813 141.098L85.6611 179.25L104.393 197.982L113.232 189.143L103.339 179.25L113.25 169.339L123.143 179.232L131.982 170.393L122.089 160.5L132.652 149.937C136.987 152.669 142.122 154.25 147.625 154.25ZM147.625 141.75C156.254 141.75 163.25 134.754 163.25 126.125C163.25 117.496 156.254 110.5 147.625 110.5C138.996 110.5 132 117.496 132 126.125C132 134.754 138.996 141.75 147.625 141.75Z" fill="url(#paint5_linear_4659_24215)"/>
-</g>
-<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" fill="#D9D9D9"/>
-<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" fill="url(#paint6_linear_4659_24215)"/>
-<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" stroke="#312938" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" stroke="url(#paint7_linear_4659_24215)" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" stroke="url(#paint8_linear_4659_24215)" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M189.907 212.209H189.952M189.907 198.907V185.604" stroke="#312938" stroke-width="8.86825" stroke-linecap="round" stroke-linejoin="round"/>
-<defs>
-<filter id="filter0_i_4659_24215" x="30" y="36.8477" width="200" height="221.917" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
-<feFlood flood-opacity="0" result="BackgroundImageFix"/>
-<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
-<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
-<feOffset dy="2"/>
-<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
-<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.5 0"/>
-<feBlend mode="plus-lighter" in2="shape" result="effect1_innerShadow_4659_24215"/>
-</filter>
-<filter id="filter1_ii_4659_24215" x="85.6611" y="98" width="90.0889" height="99.9814" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
-<feFlood flood-opacity="0" result="BackgroundImageFix"/>
-<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
-<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
-<feOffset dy="2"/>
-<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
-<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.4 0"/>
-<feBlend mode="normal" in2="shape" result="effect1_innerShadow_4659_24215"/>
-<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
-<feOffset dy="-2"/>
-<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
-<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0"/>
-<feBlend mode="normal" in2="effect1_innerShadow_4659_24215" result="effect2_innerShadow_4659_24215"/>
-</filter>
-<linearGradient id="paint0_linear_4659_24215" x1="130" y1="35" x2="130" y2="263.571" gradientUnits="userSpaceOnUse">
-<stop stop-color="#19233C"/>
-<stop offset="1" stop-color="#1647C3"/>
-</linearGradient>
-<linearGradient id="paint1_linear_4659_24215" x1="130" y1="35" x2="130" y2="263.571" gradientUnits="userSpaceOnUse">
-<stop stop-color="#C1F2FF"/>
-<stop offset="0.42" stop-color="#2077F8"/>
-<stop offset="0.700262" stop-color="#000F4D"/>
-</linearGradient>
-<linearGradient id="paint2_linear_4659_24215" x1="130" y1="35" x2="130" y2="263.571" gradientUnits="userSpaceOnUse">
-<stop stop-color="#C1F2FF"/>
-<stop offset="0.700262" stop-color="#718CF5"/>
-</linearGradient>
-<linearGradient id="paint3_linear_4659_24215" x1="130" y1="35" x2="130" y2="263.571" gradientUnits="userSpaceOnUse">
-<stop stop-color="#D8E3FF"/>
-<stop offset="0.700262" stop-color="#718CF5"/>
-</linearGradient>
-<linearGradient id="paint4_linear_4659_24215" x1="130.705" y1="98" x2="130.705" y2="197.982" gradientUnits="userSpaceOnUse">
-<stop stop-color="white"/>
-<stop offset="1" stop-color="#6DA8FF"/>
-</linearGradient>
-<linearGradient id="paint5_linear_4659_24215" x1="130.705" y1="98" x2="130.705" y2="197.982" gradientUnits="userSpaceOnUse">
-<stop stop-color="white"/>
-<stop offset="1" stop-color="#6891FE"/>
-</linearGradient>
-<linearGradient id="paint6_linear_4659_24215" x1="190" y1="159" x2="190.533" y2="242.2" gradientUnits="userSpaceOnUse">
-<stop stop-color="#FFC414"/>
-<stop offset="1" stop-color="#FF9500"/>
-</linearGradient>
-<linearGradient id="paint7_linear_4659_24215" x1="190" y1="159" x2="190" y2="230.082" gradientUnits="userSpaceOnUse">
-<stop stop-color="#5C486E"/>
-<stop offset="1" stop-color="#312938"/>
-</linearGradient>
-<linearGradient id="paint8_linear_4659_24215" x1="190" y1="159" x2="190" y2="230.082" gradientUnits="userSpaceOnUse">
-<stop stop-color="white"/>
-<stop offset="1" stop-color="#EBD4FF"/>
-</linearGradient>
-</defs>
-</svg>
diff --git a/assets/images/seed_warning_light.svg b/assets/images/seed_warning_light.svg
deleted file mode 100644
index cab27ec..0000000
--- a/assets/images/seed_warning_light.svg
+++ /dev/null
@@ -1,111 +0,0 @@
-<svg width="260" height="298" viewBox="0 0 260 298" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M119.655 6.2793C126.055 3.53675 133.272 3.4513 139.723 6.02246L140.345 6.2793L243.044 50.2939C252.699 54.432 258.96 63.9259 258.96 74.4307V128.543C258.96 175.816 236.309 220.201 198.085 247.941L197.18 248.594L145.264 285.677C136.276 292.097 124.25 292.198 115.167 285.979L114.736 285.677L62.8203 248.594C24.0499 220.9 1.04004 176.188 1.04004 128.543V74.4307C1.04004 64.09 7.10644 54.7293 16.5059 50.4922L16.9561 50.2939L119.655 6.2793Z" stroke="#4A98DC" stroke-opacity="0.05" stroke-width="2.08"/>
-<path d="M120.451 17.2803C126.358 14.7487 133.02 14.6696 138.975 17.043L139.549 17.2803L234.349 57.9092C243.261 61.7289 249.04 70.492 249.04 80.1885V130.139C249.04 173.775 228.131 214.746 192.848 240.353L192.012 240.955L144.089 275.186C135.792 281.112 124.692 281.205 116.308 275.464L115.911 275.186L67.9883 240.955C32.2001 215.392 10.96 174.119 10.96 130.139V80.1885C10.9601 70.6434 16.56 62.0028 25.2363 58.0918L25.6514 57.9092L120.451 17.2803Z" stroke="#4B98DC" stroke-opacity="0.15" stroke-width="1.92"/>
-<path d="M121.294 28.3916C126.68 26.0835 132.754 26.0109 138.183 28.1748L138.706 28.3916L225.605 65.6338C233.731 69.1163 239 77.1066 239 85.9473V131.734C239 171.382 220.152 208.626 188.301 232.11L186.774 233.219L142.846 264.597C135.282 270 125.161 270.084 117.517 264.85L117.154 264.597L73.2256 233.219C40.4513 209.808 21 172.011 21 131.734V85.9473C21 77.2448 26.1053 69.3666 34.0156 65.8008L34.3945 65.6338L121.294 28.3916Z" stroke="#4895DB" stroke-opacity="0.35" stroke-width="2"/>
-<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="black"/>
-<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="url(#paint0_linear_5093_13165)"/>
-<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="url(#paint1_linear_5093_13165)"/>
-<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="url(#paint2_linear_5093_13165)"/>
-<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="url(#paint3_linear_5093_13165)"/>
-<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="url(#paint4_radial_5093_13165)" fill-opacity="0.3"/>
-<path d="M123.479 42.6309C127.513 40.9019 132.063 40.8486 136.13 42.4697L136.521 42.6309L215.521 76.4883C221.609 79.097 225.556 85.0825 225.556 91.7051V133.33C225.556 168.249 208.955 201.052 180.902 221.735L179.559 222.712L139.623 251.237C134.047 255.221 126.615 255.345 120.923 251.61L120.377 251.237L80.4414 222.712C51.5757 202.093 34.4443 168.803 34.4443 133.33V91.7051C34.4445 85.2895 38.1486 79.4723 43.9141 76.7432L44.4785 76.4883L123.479 42.6309Z" stroke="url(#paint5_linear_5093_13165)" stroke-width="8.88889"/>
-<path d="M123.479 42.6309C127.513 40.9019 132.063 40.8486 136.13 42.4697L136.521 42.6309L215.521 76.4883C221.609 79.097 225.556 85.0825 225.556 91.7051V133.33C225.556 168.249 208.955 201.052 180.902 221.735L179.559 222.712L139.623 251.237C134.047 255.221 126.615 255.345 120.923 251.61L120.377 251.237L80.4414 222.712C51.5757 202.093 34.4443 168.803 34.4443 133.33V91.7051C34.4445 85.2895 38.1486 79.4723 43.9141 76.7432L44.4785 76.4883L123.479 42.6309Z" stroke="url(#paint6_linear_5093_13165)" stroke-width="8.88889"/>
-<path d="M123.479 42.6309C127.513 40.9019 132.063 40.8486 136.13 42.4697L136.521 42.6309L215.521 76.4883C221.609 79.097 225.556 85.0825 225.556 91.7051V133.33C225.556 168.249 208.955 201.052 180.902 221.735L179.559 222.712L139.623 251.237C134.047 255.221 126.615 255.345 120.923 251.61L120.377 251.237L80.4414 222.712C51.5757 202.093 34.4443 168.803 34.4443 133.33V91.7051C34.4445 85.2895 38.1486 79.4723 43.9141 76.7432L44.4785 76.4883L123.479 42.6309Z" stroke="url(#paint7_linear_5093_13165)" stroke-width="8.88889"/>
-<path d="M123.479 42.6309C127.513 40.9019 132.063 40.8486 136.13 42.4697L136.521 42.6309L215.521 76.4883C221.609 79.097 225.556 85.0825 225.556 91.7051V133.33C225.556 168.249 208.955 201.052 180.902 221.735L179.559 222.712L139.623 251.237C134.047 255.221 126.615 255.345 120.923 251.61L120.377 251.237L80.4414 222.712C51.5757 202.093 34.4443 168.803 34.4443 133.33V91.7051C34.4445 85.2895 38.1486 79.4723 43.9141 76.7432L44.4785 76.4883L123.479 42.6309Z" stroke="url(#paint8_linear_5093_13165)" stroke-width="8.88889"/>
-<g filter="url(#filter0_i_5093_13165)">
-<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="black" fill-opacity="0.01"/>
-</g>
-<g filter="url(#filter1_ii_5093_13165)">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.251C163.158 154.251 175.75 141.659 175.75 126.126C175.75 110.593 163.158 98.001 147.625 98.001C132.092 98.001 119.5 110.593 119.5 126.126C119.5 131.629 121.081 136.764 123.813 141.099L85.6611 179.251L104.393 197.983L113.232 189.144L103.339 179.251L113.25 169.34L123.143 179.233L131.982 170.394L122.089 160.501L132.652 149.938C136.987 152.67 142.122 154.251 147.625 154.251ZM147.625 141.751C156.254 141.751 163.25 134.755 163.25 126.126C163.25 117.497 156.254 110.501 147.625 110.501C138.996 110.501 132 117.497 132 126.126C132 134.755 138.996 141.751 147.625 141.751Z" fill="black"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.251C163.158 154.251 175.75 141.659 175.75 126.126C175.75 110.593 163.158 98.001 147.625 98.001C132.092 98.001 119.5 110.593 119.5 126.126C119.5 131.629 121.081 136.764 123.813 141.099L85.6611 179.251L104.393 197.983L113.232 189.144L103.339 179.251L113.25 169.34L123.143 179.233L131.982 170.394L122.089 160.501L132.652 149.938C136.987 152.67 142.122 154.251 147.625 154.251ZM147.625 141.751C156.254 141.751 163.25 134.755 163.25 126.126C163.25 117.497 156.254 110.501 147.625 110.501C138.996 110.501 132 117.497 132 126.126C132 134.755 138.996 141.751 147.625 141.751Z" fill="url(#paint9_linear_5093_13165)"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.251C163.158 154.251 175.75 141.659 175.75 126.126C175.75 110.593 163.158 98.001 147.625 98.001C132.092 98.001 119.5 110.593 119.5 126.126C119.5 131.629 121.081 136.764 123.813 141.099L85.6611 179.251L104.393 197.983L113.232 189.144L103.339 179.251L113.25 169.34L123.143 179.233L131.982 170.394L122.089 160.501L132.652 149.938C136.987 152.67 142.122 154.251 147.625 154.251ZM147.625 141.751C156.254 141.751 163.25 134.755 163.25 126.126C163.25 117.497 156.254 110.501 147.625 110.501C138.996 110.501 132 117.497 132 126.126C132 134.755 138.996 141.751 147.625 141.751Z" fill="url(#paint10_linear_5093_13165)"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.251C163.158 154.251 175.75 141.659 175.75 126.126C175.75 110.593 163.158 98.001 147.625 98.001C132.092 98.001 119.5 110.593 119.5 126.126C119.5 131.629 121.081 136.764 123.813 141.099L85.6611 179.251L104.393 197.983L113.232 189.144L103.339 179.251L113.25 169.34L123.143 179.233L131.982 170.394L122.089 160.501L132.652 149.938C136.987 152.67 142.122 154.251 147.625 154.251ZM147.625 141.751C156.254 141.751 163.25 134.755 163.25 126.126C163.25 117.497 156.254 110.501 147.625 110.501C138.996 110.501 132 117.497 132 126.126C132 134.755 138.996 141.751 147.625 141.751Z" fill="url(#paint11_linear_5093_13165)"/>
-</g>
-<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" fill="#D9D9D9"/>
-<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" fill="url(#paint12_linear_5093_13165)"/>
-<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" stroke="#312938" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" stroke="url(#paint13_linear_5093_13165)" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
-<path d="M189.907 212.209H189.952M189.907 198.907V185.604" stroke="#312938" stroke-width="8.86825" stroke-linecap="round" stroke-linejoin="round"/>
-<defs>
-<filter id="filter0_i_5093_13165" x="30" y="36.8486" width="200" height="221.917" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
-<feFlood flood-opacity="0" result="BackgroundImageFix"/>
-<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
-<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
-<feOffset dy="2"/>
-<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
-<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.5 0"/>
-<feBlend mode="normal" in2="shape" result="effect1_innerShadow_5093_13165"/>
-</filter>
-<filter id="filter1_ii_5093_13165" x="85.6611" y="98.001" width="90.0889" height="99.9814" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
-<feFlood flood-opacity="0" result="BackgroundImageFix"/>
-<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
-<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
-<feOffset dy="2"/>
-<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
-<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.3 0"/>
-<feBlend mode="normal" in2="shape" result="effect1_innerShadow_5093_13165"/>
-<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
-<feOffset dy="-2"/>
-<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
-<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0"/>
-<feBlend mode="normal" in2="effect1_innerShadow_5093_13165" result="effect2_innerShadow_5093_13165"/>
-</filter>
-<linearGradient id="paint0_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
-<stop stop-color="#002A52"/>
-<stop offset="1" stop-color="#0652DF"/>
-</linearGradient>
-<linearGradient id="paint1_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
-<stop stop-color="#19233C"/>
-<stop offset="1" stop-color="#144CD8"/>
-</linearGradient>
-<linearGradient id="paint2_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
-<stop stop-color="#19233C"/>
-<stop offset="1" stop-color="#1647C3"/>
-</linearGradient>
-<linearGradient id="paint3_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
-<stop stop-color="#FAFAFA"/>
-<stop offset="1" stop-color="#72AAFF"/>
-</linearGradient>
-<radialGradient id="paint4_radial_5093_13165" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(130 149.287) rotate(90) scale(97.381 85.2083)">
-<stop stop-color="white"/>
-<stop offset="1" stop-color="white" stop-opacity="0"/>
-</radialGradient>
-<linearGradient id="paint5_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
-<stop stop-color="#C1F2FF"/>
-<stop offset="0.42" stop-color="#2077F8"/>
-<stop offset="0.700262" stop-color="#000F4D"/>
-</linearGradient>
-<linearGradient id="paint6_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
-<stop stop-color="#C1F2FF"/>
-<stop offset="0.700262" stop-color="#718CF5"/>
-</linearGradient>
-<linearGradient id="paint7_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
-<stop stop-color="#D8E3FF"/>
-<stop offset="0.700262" stop-color="#718CF5"/>
-</linearGradient>
-<linearGradient id="paint8_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
-<stop stop-color="#68BEEF"/>
-<stop offset="0.700262" stop-color="#2C71CC"/>
-</linearGradient>
-<linearGradient id="paint9_linear_5093_13165" x1="130.705" y1="98.001" x2="130.705" y2="197.983" gradientUnits="userSpaceOnUse">
-<stop stop-color="white"/>
-<stop offset="1" stop-color="#6DA8FF"/>
-</linearGradient>
-<linearGradient id="paint10_linear_5093_13165" x1="130.705" y1="98.001" x2="130.705" y2="197.983" gradientUnits="userSpaceOnUse">
-<stop stop-color="#68BEEF"/>
-<stop offset="1" stop-color="#0047A3"/>
-</linearGradient>
-<linearGradient id="paint11_linear_5093_13165" x1="130.705" y1="98.001" x2="130.705" y2="197.983" gradientUnits="userSpaceOnUse">
-<stop stop-color="#68BEEF"/>
-<stop offset="0.700262" stop-color="#2C71CC"/>
-</linearGradient>
-<linearGradient id="paint12_linear_5093_13165" x1="190" y1="159" x2="190.533" y2="242.2" gradientUnits="userSpaceOnUse">
-<stop stop-color="#FFC414"/>
-<stop offset="1" stop-color="#FF9500"/>
-</linearGradient>
-<linearGradient id="paint13_linear_5093_13165" x1="190" y1="159" x2="190" y2="230.082" gradientUnits="userSpaceOnUse">
-<stop stop-color="#5C486E"/>
-<stop offset="1" stop-color="#312938"/>
-</linearGradient>
-</defs>
-</svg>
diff --git a/integration_test/robots/pre_seed_page_robot.dart b/integration_test/robots/pre_seed_page_robot.dart
index 6f46e3a..c3eeb5f 100644
--- a/integration_test/robots/pre_seed_page_robot.dart
+++ b/integration_test/robots/pre_seed_page_robot.dart
@@ -1,4 +1,4 @@
-import 'package:cake_wallet/src/screens/seed/pre_seed_page.dart';
+import "package:cake_wallet/new-ui/pages/seed/pre_seed_page.dar"';
import 'package:flutter_test/flutter_test.dart';
import '../components/common_test_cases.dart';
@@ -15,6 +15,9 @@ class PreSeedPageRobot {
}
Future<void> onConfirmButtonPressed() async {
+ await commonTestCases.tapItemByKey("pre_seed_page_only_way_checkbox_key");
+ await commonTestCases.tapItemByKey("pre_seed_page_write_down_checkbox_key");
+ await commonTestCases.tapItemByKey("pre_seed_page_never_share_checkbox_key");
await commonTestCases.tapItemByKey('pre_seed_page_button_key');
await commonTestCases.defaultSleepTime();
}
diff --git a/lib/di.dart b/lib/di.dart
index ee904e2..4e64d9c 100644
--- a/lib/di.dart
+++ b/lib/di.dart
@@ -63,6 +63,8 @@ import 'package:cake_wallet/new-ui/pages/send_page.dart';
import "package:cake_wallet/new-ui/services/wallet_switch_service.dart";
import 'package:cake_wallet/new-ui/pages/lightning_username_page.dart';
import 'package:cake_wallet/new-ui/pages/receive_page.dart';
+import "package:cake_wallet/new-ui/pages/seed/pre_seed_page.dart";
+import "package:cake_wallet/new-ui/pages/seed/show_keys_disclaimer_page.dart";
import 'package:cake_wallet/new-ui/viewmodels/lightning_username/lightning_username_bloc.dart';
import 'package:cake_wallet/new-ui/widgets/addresses_page/address_label_input.dart';
import 'package:cake_wallet/new-ui/widgets/coins_page/assets_history/transaction_details_modal.dart';
@@ -130,7 +132,6 @@ import 'package:cake_wallet/src/screens/restore/restore_from_backup_page.dart';
import 'package:cake_wallet/src/screens/restore/restore_options_page.dart';
import 'package:cake_wallet/src/screens/restore/wallet_restore_choose_derivation.dart';
import 'package:cake_wallet/src/screens/restore/wallet_restore_page.dart';
-import 'package:cake_wallet/src/screens/seed/pre_seed_page.dart';
import 'package:cake_wallet/src/screens/seed/seed_verification/seed_verification_page.dart';
import 'package:cake_wallet/src/screens/seed/wallet_seed_page.dart';
import 'package:cake_wallet/src/screens/send/send_page.dart';
@@ -1089,6 +1090,9 @@ Future<void> setup({
getIt.registerFactory(() => WalletKeysPage(getIt.get<WalletKeysViewModel>()));
+ getIt.registerFactory(() => ShowKeysDisclaimerPage(
+ authService: getIt.get<AuthService>(), settingsStore: getIt.get<SettingsStore>()));
+
getIt.registerFactory(() => AnimatedURModel(getIt.get<AppStore>()));
getIt.registerFactoryParam<AnimatedURPage, Map<String, String>, void>(
@@ -1448,7 +1452,7 @@ Future<void> setup({
);
});
- getIt.registerFactory<PreSeedPage>(() => PreSeedPage());
+ getIt.registerFactory<PreSeedPage>(() => PreSeedPage(getIt.get<AppStore>().wallet!));
getIt.registerFactoryParam<TransactionSuccessPage, String, void>(
(content, _) => TransactionSuccessPage(content: content));
@@ -1702,7 +1706,9 @@ Future<void> setup({
getIt.registerFactory(() => SignViewModel(getIt.get<AppStore>().wallet!));
- getIt.registerFactory(() => SeedVerificationPage(getIt.get<WalletSeedViewModel>()));
+ getIt.registerFactoryParam<SeedVerificationPage, bool, void>((bool isNewWalletCreated, _) =>
+ SeedVerificationPage(getIt.get<WalletSeedViewModel>(),
+ isNewWalletCreated: isNewWalletCreated));
getIt.registerFactory(() => DevMoneroBackgroundSyncPage(getIt.get<DevMoneroBackgroundSync>()));
diff --git a/lib/new-ui/pages/seed/open_wallet_after_seed_flow.dart b/lib/new-ui/pages/seed/open_wallet_after_seed_flow.dart
new file mode 100644
index 0000000..22d5511
--- /dev/null
+++ b/lib/new-ui/pages/seed/open_wallet_after_seed_flow.dart
@@ -0,0 +1,13 @@
+import "package:cake_wallet/routes.dart";
+import "package:cw_core/wallet_type.dart";
+import "package:flutter/widgets.dart";
+
+// Bitcoin wallets set up lightning username right after the seed step.
+void openWalletAfterSeedFlow(BuildContext context, WalletType walletType) {
+ if (walletType == WalletType.bitcoin) {
+ Navigator.of(context).pushNamed(Routes.lightningUsernamePage, arguments: true);
+ return;
+ }
+
+ Navigator.of(context).popUntil((route) => route.isFirst);
+}
diff --git a/lib/new-ui/pages/seed/pre_seed_page.dart b/lib/new-ui/pages/seed/pre_seed_page.dart
new file mode 100644
index 0000000..67642be
--- /dev/null
+++ b/lib/new-ui/pages/seed/pre_seed_page.dart
@@ -0,0 +1,125 @@
+import "package:cake_wallet/generated/i18n.dart";
+import "package:cake_wallet/new-ui/pages/seed/open_wallet_after_seed_flow.dart";
+import "package:cake_wallet/new-ui/pages/seed/skip_seed_verification_page.dart";
+import "package:cake_wallet/new-ui/widgets/seed/seed_checkbox_row.dart";
+import "package:cake_wallet/new-ui/widgets/seed/seed_hero_image.dart";
+import "package:cake_wallet/new-ui/widgets/seed/seed_page_header.dart";
+import "package:cake_wallet/new-ui/widgets/seed/seed_page_scaffold.dart";
+import "package:cake_wallet/new-ui/widgets/stacked_buttons.dart";
+import "package:cake_wallet/routes.dart";
+import "package:cake_wallet/themes/core/theme_extension.dart";
+import "package:cw_core/wallet_base.dart";
+import "package:flutter/cupertino.dart";
+import "package:flutter/material.dart";
+
+class PreSeedPage extends StatefulWidget {
+ const PreSeedPage(this.wallet, {super.key});
+
+ final WalletBase wallet;
+
+ @override
+ State<PreSeedPage> createState() => _PreSeedPageState();
+}
+
+class _PreSeedPageState extends State<PreSeedPage> {
+ bool _understandsOnlyWayToRecover = false;
+ bool _willWriteItDown = false;
+ bool _willNeverShareIt = false;
+
+ bool get _hasCheckedAll => _understandsOnlyWayToRecover && _willWriteItDown && _willNeverShareIt;
+
+ @override
+ Widget build(BuildContext context) {
+ final colors = Theme.of(context).colorScheme;
+ final textTheme = Theme.of(context).textTheme;
+
+ return PopScope(
+ canPop: false,
+ child: SeedPageScaffold(
+ content: Column(
+ mainAxisSize: MainAxisSize.min,
+ spacing: 24,
+ children: [
+ SeedPageHeader(
+ image: const SeedHeroImage(),
+ title: S.of(context).recovery_phrase_intro_title,
+ description: Text(
+ S.of(context).recovery_phrase_intro_description,
+ textAlign: TextAlign.center,
+ style: textTheme.bodyMedium?.copyWith(
+ color: colors.onSurfaceVariant,
+ letterSpacing: -0.07,
+ ),
+ ),
+ ),
+ Column(
+ spacing: 12,
+ children: [
+ SeedCheckboxRow(
+ key: const ValueKey("pre_seed_page_only_way_checkbox_key"),
+ iconPath: "assets/new-ui/key.svg",
+ text: S.of(context).recovery_phrase_check_only_way,
+ isChecked: _understandsOnlyWayToRecover,
+ onChanged: (value) => setState(() => _understandsOnlyWayToRecover = value),
+ ),
+ SeedCheckboxRow(
+ key: const ValueKey("pre_seed_page_write_down_checkbox_key"),
+ iconPath: "assets/new-ui/set-amount.svg",
+ text: S.of(context).recovery_phrase_check_write_down,
+ isChecked: _willWriteItDown,
+ onChanged: (value) => setState(() => _willWriteItDown = value),
+ ),
+ SeedCheckboxRow(
+ key: const ValueKey("pre_seed_page_never_share_checkbox_key"),
+ iconPath: "assets/new-ui/visibility.svg",
+ text: S.of(context).recovery_phrase_check_never_share,
+ isChecked: _willNeverShareIt,
+ onChanged: (value) => setState(() => _willNeverShareIt = value),
+ ),
+ ],
+ ),
+ if (!_hasCheckedAll)
+ Text(
+ S.of(context).recovery_phrase_check_all_to_proceed,
+ textAlign: TextAlign.center,
+ style: textTheme.bodyMedium?.copyWith(
+ color: context.customColors.warningOutlineColor,
+ letterSpacing: -0.07,
+ ),
+ ),
+ ],
+ ),
+ footer: _hasCheckedAll
+ ? StackedButtons(
+ primaryKey: const ValueKey("pre_seed_page_button_key"),
+ primaryText: S.of(context).show_recovery_phrase,
+ onPrimary: () => Navigator.of(context).pushNamed(Routes.seed, arguments: true),
+ secondaryKey: const ValueKey("pre_seed_page_skip_button_key"),
+ secondaryText: S.of(context).skip_this_step,
+ onSecondary: _confirmSkip,
+ secondaryAsLink: true,
+ )
+ : null,
+ alignTop: true,
+ ),
+ );
+ }
+
+ void _confirmSkip() {
+ Navigator.of(context).push(
+ CupertinoPageRoute<void>(
+ builder: (_) => SkipSeedVerificationPage(onConfirm: _skipVerification),
+ ),
+ );
+ }
+
+ Future<void> _skipVerification() async {
+ await widget.wallet.walletInfo.updateShowSeedBackupReminder(true);
+
+ if (!mounted) {
+ return;
+ }
+
+ openWalletAfterSeedFlow(context, widget.wallet.type);
+ }
+}
diff --git a/lib/new-ui/pages/seed/show_keys_disclaimer_page.dart b/lib/new-ui/pages/seed/show_keys_disclaimer_page.dart
new file mode 100644
index 0000000..4b523a2
--- /dev/null
+++ b/lib/new-ui/pages/seed/show_keys_disclaimer_page.dart
@@ -0,0 +1,62 @@
+import "package:cake_wallet/core/auth_service.dart";
+import "package:cake_wallet/generated/i18n.dart";
+import "package:cake_wallet/new-ui/widgets/seed/seed_hero_image.dart";
+import "package:cake_wallet/new-ui/widgets/seed/seed_page_header.dart";
+import "package:cake_wallet/new-ui/widgets/seed/seed_page_scaffold.dart";
+import "package:cake_wallet/new-ui/widgets/stacked_buttons.dart";
+import "package:cake_wallet/routes.dart";
+import "package:cake_wallet/store/settings_store.dart";
+import "package:cake_wallet/themes/core/theme_extension.dart";
+import "package:flutter/material.dart";
+
+class ShowKeysDisclaimerPage extends StatelessWidget {
+ const ShowKeysDisclaimerPage({
+ required this.authService,
+ required this.settingsStore,
+ super.key,
+ });
+
+ final AuthService authService;
+ final SettingsStore settingsStore;
+
+ @override
+ Widget build(BuildContext context) {
+ final colors = Theme.of(context).colorScheme;
+
+ return SeedPageScaffold(
+ content: SeedPageHeader(
+ image: const SeedHeroImage(showWarningBadge: true),
+ title: S.of(context).secret_information_ahead,
+ description: Text.rich(
+ TextSpan(
+ children: [
+ TextSpan(text: "${S.of(context).secret_information_ahead_description}\n\n"),
+ TextSpan(
+ text: S.of(context).secret_information_ahead_warning,
+ style: TextStyle(color: context.customColors.warningOutlineColor),
+ ),
+ ],
+ ),
+ textAlign: TextAlign.center,
+ style: Theme.of(context).textTheme.bodyMedium?.copyWith(
+ color: colors.onSurfaceVariant,
+ letterSpacing: -0.07,
+ ),
+ ),
+ ),
+ footer: StackedButtons(
+ primaryKey: const ValueKey("show_keys_disclaimer_page_button_key"),
+ primaryText: S.of(context).show_recovery_phrase_and_keys,
+ onPrimary: () => authService.authenticateAction(
+ context,
+ route: Routes.showKeys,
+ conditionToDetermineIfToUse2FA:
+ settingsStore.shouldRequireTOTP2FAForAllSecurityAndBackupSettings,
+ ),
+ secondaryKey: const ValueKey("show_keys_disclaimer_page_back_button_key"),
+ secondaryText: S.of(context).seed_alert_back,
+ onSecondary: () => Navigator.of(context).pop(),
+ ),
+ );
+ }
+}
diff --git a/lib/new-ui/pages/seed/skip_seed_verification_page.dart b/lib/new-ui/pages/seed/skip_seed_verification_page.dart
new file mode 100644
index 0000000..8d87601
--- /dev/null
+++ b/lib/new-ui/pages/seed/skip_seed_verification_page.dart
@@ -0,0 +1,64 @@
+import "package:cake_wallet/generated/i18n.dart";
+import "package:cake_wallet/new-ui/widgets/seed/seed_page_header.dart";
+import "package:cake_wallet/new-ui/widgets/seed/seed_page_scaffold.dart";
+import "package:cake_wallet/new-ui/widgets/stacked_buttons.dart";
+import "package:cake_wallet/src/widgets/cake_image_widget.dart";
+import "package:cake_wallet/themes/core/theme_extension.dart";
+import "package:flutter/material.dart";
+
+class SkipSeedVerificationPage extends StatelessWidget {
+ const SkipSeedVerificationPage({required this.onConfirm, super.key});
+
+ final VoidCallback onConfirm;
+
+ @override
+ Widget build(BuildContext context) {
+ final colors = Theme.of(context).colorScheme;
+ final textTheme = Theme.of(context).textTheme;
+
+ return SeedPageScaffold(
+ content: ConstrainedBox(
+ constraints: const BoxConstraints(maxWidth: 295),
+ child: SeedPageHeader(
+ image: const CakeImageWidget(
+ imageUrl: "assets/new-ui/warning_triangle.svg",
+ width: 125,
+ height: 111.72,
+ ),
+ imageSpacing: 48,
+ titleSpacing: 24,
+ title: S.of(context).skip_verification_title,
+ description: Column(
+ spacing: 24,
+ children: [
+ Text(
+ S.of(context).skip_verification_warning,
+ textAlign: TextAlign.center,
+ style: textTheme.bodyMedium?.copyWith(
+ color: context.customColors.warningOutlineColor,
+ letterSpacing: -0.07,
+ ),
+ ),
+ Text(
+ S.of(context).skip_verification_question,
+ textAlign: TextAlign.center,
+ style: textTheme.bodyMedium?.copyWith(
+ color: colors.onSurfaceVariant,
+ letterSpacing: -0.07,
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ footer: StackedButtons(
+ primaryKey: const ValueKey("skip_seed_verification_page_confirm_button_key"),
+ primaryText: S.of(context).skip_verification_confirm,
+ onPrimary: onConfirm,
+ secondaryKey: const ValueKey("skip_seed_verification_page_back_button_key"),
+ secondaryText: S.of(context).seed_alert_back,
+ onSecondary: () => Navigator.of(context).pop(),
+ ),
+ );
+ }
+}
diff --git a/lib/new-ui/pages/settings_page.dart b/lib/new-ui/pages/settings_page.dart
index 8aaec52..e60865d 100644
--- a/lib/new-ui/pages/settings_page.dart
+++ b/lib/new-ui/pages/settings_page.dart
@@ -62,11 +62,8 @@ class SettingsSectionData {
"assets/new-ui/settings_row_icons/nodes.svg", S.current.nodes, Routes.manageNodes),
SettingsListItem(
"assets/new-ui/settings_row_icons/privacy.svg", S.current.privacy, Routes.privacyPage),
- SettingsListItem(
- "assets/new-ui/settings_row_icons/seed.svg", S.current.seed_and_keys, Routes.showKeys,
- routeArgs: true,
- requireAuth: true,
- use2fa: (vm) => vm.settingsStore.shouldRequireTOTP2FAForAllSecurityAndBackupSettings),
+ SettingsListItem("assets/new-ui/settings_row_icons/seed.svg", S.current.recovery_and_keys,
+ Routes.showKeysDisclaimer),
SettingsListItem("assets/new-ui/settings_row_icons/lightning_username.svg",
"Lightning ${S.current.username}", Routes.lightningUsernamePage,
condition: _hasLightning),
diff --git a/lib/new-ui/widgets/seed/seed_checkbox_row.dart b/lib/new-ui/widgets/seed/seed_checkbox_row.dart
new file mode 100644
index 0000000..9291e98
--- /dev/null
+++ b/lib/new-ui/widgets/seed/seed_checkbox_row.dart
@@ -0,0 +1,72 @@
+import "package:cake_wallet/src/widgets/cake_image_widget.dart";
+import "package:flutter/material.dart";
+
+class SeedCheckboxRow extends StatelessWidget {
+ const SeedCheckboxRow({
+ required this.iconPath,
+ required this.text,
+ required this.isChecked,
+ required this.onChanged,
+ super.key,
+ });
+
+ final String iconPath;
+ final String text;
+ final bool isChecked;
+ final ValueChanged<bool> onChanged;
+
+ @override
+ Widget build(BuildContext context) {
+ final colors = Theme.of(context).colorScheme;
+
+ return MergeSemantics(
+ child: Semantics(
+ checked: isChecked,
+ child: GestureDetector(
+ behavior: HitTestBehavior.opaque,
+ onTap: () => onChanged(!isChecked),
+ child: Container(
+ padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 16),
+ decoration: BoxDecoration(
+ color: colors.surfaceContainer,
+ borderRadius: BorderRadius.circular(18),
+ ),
+ child: Row(
+ spacing: 12,
+ children: [
+ ExcludeSemantics(
+ child: CakeImageWidget(
+ imageUrl: iconPath,
+ width: 24,
+ height: 24,
+ colorFilter: ColorFilter.mode(colors.primary, BlendMode.srcIn),
+ ),
+ ),
+ Expanded(
+ child: Text(
+ text,
+ style: Theme.of(context).textTheme.bodySmall?.copyWith(
+ color: colors.primary,
+ letterSpacing: -0.06,
+ ),
+ ),
+ ),
+ ExcludeSemantics(
+ child: Container(
+ width: 24,
+ height: 24,
+ decoration: BoxDecoration(
+ shape: BoxShape.circle,
+ color: isChecked ? colors.primary : colors.surfaceContainerHighest,
+ ),
+ child: isChecked ? Icon(Icons.check, size: 16, color: colors.onPrimary) : null,
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/new-ui/widgets/seed/seed_hero_image.dart b/lib/new-ui/widgets/seed/seed_hero_image.dart
new file mode 100644
index 0000000..0dddeb5
--- /dev/null
+++ b/lib/new-ui/widgets/seed/seed_hero_image.dart
@@ -0,0 +1,20 @@
+import "package:cake_wallet/src/widgets/cake_image_widget.dart";
+import "package:flutter/material.dart";
+
+class SeedHeroImage extends StatelessWidget {
+ const SeedHeroImage({this.showWarningBadge = false, super.key});
+
+ final bool showWarningBadge;
+
+ @override
+ Widget build(BuildContext context) {
+ final name = showWarningBadge ? "seed_warning" : "seed_shield";
+ final variant = Theme.of(context).brightness == Brightness.dark ? "dark" : "light";
+
+ return CakeImageWidget(
+ imageUrl: "assets/new-ui/hero/${name}_$variant.svg",
+ width: 200,
+ height: 228.57,
+ );
+ }
+}
diff --git a/lib/new-ui/widgets/seed/seed_page_header.dart b/lib/new-ui/widgets/seed/seed_page_header.dart
new file mode 100644
index 0000000..55a61cf
--- /dev/null
+++ b/lib/new-ui/widgets/seed/seed_page_header.dart
@@ -0,0 +1,37 @@
+import "package:flutter/material.dart";
+
+class SeedPageHeader extends StatelessWidget {
+ const SeedPageHeader({
+ required this.image,
+ required this.title,
+ required this.description,
+ this.imageSpacing = 24,
+ this.titleSpacing = 12,
+ super.key,
+ });
+
+ final Widget image;
+ final String title;
+ final Widget description;
+ final double imageSpacing;
+ final double titleSpacing;
+
+ @override
+ Widget build(BuildContext context) => Column(
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ ExcludeSemantics(child: image),
+ SizedBox(height: imageSpacing),
+ Semantics(
+ header: true,
+ child: Text(
+ title,
+ textAlign: TextAlign.center,
+ style: Theme.of(context).textTheme.headlineMedium?.copyWith(letterSpacing: -0.09),
+ ),
+ ),
+ SizedBox(height: titleSpacing),
+ description,
+ ],
+ );
+}
diff --git a/lib/new-ui/widgets/seed/seed_page_scaffold.dart b/lib/new-ui/widgets/seed/seed_page_scaffold.dart
new file mode 100644
index 0000000..cfdbcfa
--- /dev/null
+++ b/lib/new-ui/widgets/seed/seed_page_scaffold.dart
@@ -0,0 +1,58 @@
+import "package:flutter/material.dart";
+
+class SeedPageScaffold extends StatelessWidget {
+ const SeedPageScaffold({
+ required this.content,
+ this.footer,
+ this.alignTop = false,
+ super.key,
+ });
+
+ final Widget content;
+ final Widget? footer;
+ final bool alignTop;
+
+ @override
+ Widget build(BuildContext context) {
+ final colors = Theme.of(context).colorScheme;
+
+ return Material(
+ child: Container(
+ decoration: BoxDecoration(
+ gradient: LinearGradient(
+ colors: [colors.surface, colors.surfaceDim],
+ begin: Alignment.topCenter,
+ end: Alignment.bottomCenter,
+ ),
+ ),
+ child: SafeArea(
+ child: Column(
+ children: [
+ Expanded(
+ child: LayoutBuilder(
+ builder: (context, constraints) => SingleChildScrollView(
+ child: ConstrainedBox(
+ constraints: BoxConstraints(minHeight: constraints.maxHeight),
+ child: Align(
+ alignment: alignTop ? Alignment.topCenter : Alignment.center,
+ child: Padding(
+ padding: EdgeInsets.fromLTRB(18, alignTop ? 0 : 16, 18, 16),
+ child: content,
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ if (footer != null)
+ Padding(
+ padding: const EdgeInsets.fromLTRB(16, 0, 16, 16),
+ child: footer,
+ ),
+ ],
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/lib/new-ui/widgets/stacked_buttons.dart b/lib/new-ui/widgets/stacked_buttons.dart
new file mode 100644
index 0000000..0e14e67
--- /dev/null
+++ b/lib/new-ui/widgets/stacked_buttons.dart
@@ -0,0 +1,65 @@
+import "package:cake_wallet/new-ui/widgets/new_primary_button.dart";
+import "package:flutter/material.dart";
+
+class StackedButtons extends StatelessWidget {
+ const StackedButtons({
+ required this.primaryText,
+ required this.onPrimary,
+ required this.secondaryText,
+ required this.onSecondary,
+ this.secondaryAsLink = false,
+ this.primaryKey,
+ this.secondaryKey,
+ super.key,
+ });
+
+ final String primaryText;
+ final VoidCallback onPrimary;
+ final String secondaryText;
+ final VoidCallback onSecondary;
+ final bool secondaryAsLink;
+ final Key? primaryKey;
+ final Key? secondaryKey;
+
+ @override
+ Widget build(BuildContext context) {
+ final colors = Theme.of(context).colorScheme;
+
+ return Column(
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ NewPrimaryButton(
+ key: primaryKey,
+ onPressed: onPrimary,
+ text: primaryText,
+ color: colors.primary,
+ textColor: colors.onPrimary,
+ ),
+ if (secondaryAsLink) ...[
+ const SizedBox(height: 9),
+ TextButton(
+ key: secondaryKey,
+ onPressed: onSecondary,
+ style: TextButton.styleFrom(minimumSize: const Size(48, 48)),
+ child: Text(
+ secondaryText,
+ style: Theme.of(context).textTheme.labelLarge?.copyWith(
+ color: colors.primary,
+ letterSpacing: -0.07,
+ ),
+ ),
+ ),
+ ] else ...[
+ const SizedBox(height: 12),
+ NewPrimaryButton(
+ key: secondaryKey,
+ onPressed: onSecondary,
+ text: secondaryText,
+ color: colors.surfaceContainer,
+ textColor: colors.primary,
+ ),
+ ],
+ ],
+ );
+ }
+}
diff --git a/lib/router.dart b/lib/router.dart
index 2b01b07..256f92b 100644
--- a/lib/router.dart
+++ b/lib/router.dart
@@ -10,6 +10,8 @@ import 'package:cake_wallet/new-ui/pages/bridge/bridge_receiving_wallet_page.dar
import 'package:cake_wallet/new-ui/pages/coin_control_page.dart';
import 'package:cake_wallet/new-ui/pages/addresses_page.dart';
import 'package:cake_wallet/new-ui/pages/lightning_username_page.dart';
+import 'package:cake_wallet/new-ui/pages/seed/pre_seed_page.dart';
+import 'package:cake_wallet/new-ui/pages/seed/show_keys_disclaimer_page.dart';
import "package:cake_wallet/new-ui/pages/receive_page.dart";
import 'package:cake_wallet/new-ui/pages/send_page.dart';
import 'package:cake_wallet/new-ui/widgets/hardware_wallet/sync_key_images_sheet.dart';
@@ -92,7 +94,6 @@ import 'package:cake_wallet/src/screens/restore/restore_options_page.dart';
import 'package:cake_wallet/src/screens/restore/sweeping_wallet_page.dart';
import 'package:cake_wallet/src/screens/restore/wallet_restore_choose_derivation.dart';
import 'package:cake_wallet/src/screens/restore/wallet_restore_page.dart';
-import 'package:cake_wallet/src/screens/seed/pre_seed_page.dart';
import 'package:cake_wallet/src/screens/seed/seed_verification/seed_verification_page.dart';
import 'package:cake_wallet/src/screens/seed/wallet_seed_page.dart';
import 'package:cake_wallet/src/screens/send/send_template_page.dart';
@@ -687,6 +688,11 @@ Route<dynamic> createRoute(RouteSettings settings) {
(context) => getIt.get<WalletKeysPage>(),
);
+ case Routes.showKeysDisclaimer:
+ return handleRouteWithPlatformAwareness(
+ (context) => getIt.get<ShowKeysDisclaimerPage>(),
+ );
+
case Routes.exchangeTrade:
return CupertinoPageRoute<void>(builder: (_) => getIt.get<ExchangeTradePage>());
@@ -996,7 +1002,7 @@ Route<dynamic> createRoute(RouteSettings settings) {
case Routes.walletSeedVerificationPage:
return MaterialPageRoute<void>(
fullscreenDialog: true,
- builder: (_) => getIt.get<SeedVerificationPage>(),
+ builder: (_) => getIt.get<SeedVerificationPage>(param1: settings.arguments as bool),
);
case Routes.exchangeTradeExternalSendPage:
diff --git a/lib/routes.dart b/lib/routes.dart
index b21e2bc..a8b2c42 100644
--- a/lib/routes.dart
+++ b/lib/routes.dart
@@ -38,6 +38,7 @@ class Routes {
static const pickerWalletAddress = '/picker_wallet_address';
static const addressBookAddContact = '/address_book_add_contact';
static const showKeys = '/show_keys';
+ static const showKeysDisclaimer = "/show_keys_disclaimer";
static const exchangeConfirm = '/exchange_confirm';
static const tradeHistory = '/trade_history';
static const tradeDetails = '/trade_details';
diff --git a/lib/src/screens/new_wallet/wallet_group_existing_seed_description_page.dart b/lib/src/screens/new_wallet/wallet_group_existing_seed_description_page.dart
index d7d2404..ae33094 100644
--- a/lib/src/screens/new_wallet/wallet_group_existing_seed_description_page.dart
+++ b/lib/src/screens/new_wallet/wallet_group_existing_seed_description_page.dart
@@ -79,7 +79,7 @@ class WalletGroupExistingSeedDescriptionPage extends BasePage {
key: ValueKey(
'wallet_group_existing_seed_description_page_verify_seed_button_key'),
onPressed: () => Navigator.pushNamed(context, Routes.preSeedPage),
- text: S.current.verify_seed,
+ text: S.current.verify_phrase,
color: Theme.of(context).colorScheme.surfaceContainer,
textColor: Theme.of(context).colorScheme.onSecondaryContainer,
),
diff --git a/lib/src/screens/seed/pre_seed_page.dart b/lib/src/screens/seed/pre_seed_page.dart
deleted file mode 100644
index 4ff9fce..0000000
--- a/lib/src/screens/seed/pre_seed_page.dart
+++ /dev/null
@@ -1,31 +0,0 @@
-import 'package:cake_wallet/generated/i18n.dart';
-import 'package:cake_wallet/routes.dart';
-import 'package:cake_wallet/src/screens/Info_page.dart';
-import 'package:flutter/cupertino.dart';
-
-class PreSeedPage extends InfoPage {
- PreSeedPage()
- : super(
- imageLightPath: 'assets/images/seed_warning_light.svg',
- imageDarkPath: 'assets/images/seed_warning_dark.svg',
- );
-
- @override
- bool get onWillPop => false;
-
- @override
- String get pageTitle => S.current.pre_seed_title;
-
- @override
- String get pageDescription => S.current.pre_seed_description;
-
- @override
- String get buttonText => S.current.pre_seed_button_text;
-
- @override
- Key? get buttonKey => ValueKey('pre_seed_page_button_key');
-
- @override
- void Function(BuildContext) get onPressed =>
- (BuildContext context) => Navigator.of(context).pushNamed(Routes.seed, arguments: true);
-}
diff --git a/lib/src/screens/seed/seed_verification/seed_verification_page.dart b/lib/src/screens/seed/seed_verification/seed_verification_page.dart
index 0daefc7..f26d5df 100644
--- a/lib/src/screens/seed/seed_verification/seed_verification_page.dart
+++ b/lib/src/screens/seed/seed_verification/seed_verification_page.dart
@@ -9,8 +9,9 @@ import 'package:flutter_mobx/flutter_mobx.dart';
class SeedVerificationPage extends BasePage {
final WalletSeedViewModel walletSeedViewModel;
+ final bool isNewWalletCreated;
- SeedVerificationPage(this.walletSeedViewModel);
+ SeedVerificationPage(this.walletSeedViewModel, {required this.isNewWalletCreated});
@override
bool get gradientBackground => true;
@@ -32,7 +33,8 @@ class SeedVerificationPage extends BasePage {
walletSeedViewModel.verificationIndices.isEmpty
? SeedVerificationSuccessView(
key: ValueKey('seed_verification_success_view_page'),
- walletType: walletSeedViewModel.walletType,
+ walletSeedViewModel: walletSeedViewModel,
+ isNewWalletCreated: isNewWalletCreated,
currentTheme: currentTheme,
)
: SeedVerificationStepView(
diff --git a/lib/src/screens/seed/seed_verification/seed_verification_success_view.dart b/lib/src/screens/seed/seed_verification/seed_verification_success_view.dart
index 320fe3d..ad64a2a 100644
--- a/lib/src/screens/seed/seed_verification/seed_verification_success_view.dart
+++ b/lib/src/screens/seed/seed_verification/seed_verification_success_view.dart
@@ -1,17 +1,23 @@
import 'package:cake_wallet/generated/i18n.dart';
-import 'package:cake_wallet/routes.dart';
+import 'package:cake_wallet/new-ui/pages/seed/open_wallet_after_seed_flow.dart';
import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/themes/core/material_base_theme.dart';
+import 'package:cake_wallet/view_model/wallet_seed_view_model.dart';
import 'package:cw_core/wallet_type.dart';
import 'package:flutter/material.dart';
class SeedVerificationSuccessView extends StatelessWidget {
- const SeedVerificationSuccessView(
- {required this.currentTheme, super.key, required this.walletType});
+ const SeedVerificationSuccessView({
+ required this.walletSeedViewModel,
+ required this.isNewWalletCreated,
+ required this.currentTheme,
+ super.key,
+ });
+ final WalletSeedViewModel walletSeedViewModel;
+ final bool isNewWalletCreated;
final MaterialThemeBase currentTheme;
- final WalletType walletType;
@override
Widget build(BuildContext context) {
@@ -65,14 +71,20 @@ class SeedVerificationSuccessView extends StatelessWidget {
Spacer(),
PrimaryButton(
key: ValueKey('wallet_seed_page_open_wallet_button_key'),
- onPressed: () {
- if (walletType == WalletType.bitcoin) {
- Navigator.of(context).pushNamed(Routes.lightningUsernamePage, arguments: true);
+ onPressed: () async {
+ await walletSeedViewModel.markSeedVerified();
+
+ if (!context.mounted) {
+ return;
+ }
+
+ if (isNewWalletCreated) {
+ openWalletAfterSeedFlow(context, walletSeedViewModel.walletType);
} else {
Navigator.of(context).popUntil((route) => route.isFirst);
}
},
- text: (walletType == WalletType.bitcoin)
+ text: isNewWalletCreated && walletSeedViewModel.walletType == WalletType.bitcoin
? S.current.continue_text
: S.current.open_wallet,
color: Theme.of(context).colorScheme.primary,
diff --git a/lib/src/screens/seed/wallet_seed_page.dart b/lib/src/screens/seed/wallet_seed_page.dart
index 27fcf34..49d5fb9 100644
--- a/lib/src/screens/seed/wallet_seed_page.dart
+++ b/lib/src/screens/seed/wallet_seed_page.dart
@@ -124,9 +124,12 @@ class WalletSeedPage extends BasePage {
padding: EdgeInsets.only(left: 8.0, top: 8.0),
child: PrimaryButton(
key: ValueKey('wallet_seed_page_verify_seed_button_key'),
- onPressed: () =>
- Navigator.pushNamed(context, Routes.walletSeedVerificationPage),
- text: S.current.verify_seed,
+ onPressed: () => Navigator.pushNamed(
+ context,
+ Routes.walletSeedVerificationPage,
+ arguments: isNewWalletCreated,
+ ),
+ text: S.current.verify_phrase,
color: Theme.of(context).colorScheme.primary,
textColor: Theme.of(context).colorScheme.onPrimary,
),
diff --git a/res/pictures/hero/seed_shield_dark.svg b/res/pictures/hero/seed_shield_dark.svg
new file mode 100644
index 0000000..4bf4a77
--- /dev/null
+++ b/res/pictures/hero/seed_shield_dark.svg
@@ -0,0 +1,80 @@
+<svg width="260" height="298" viewBox="0 0 260 298" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M119.655 6.27832C126.055 3.53578 133.272 3.45033 139.723 6.02148L140.345 6.27832L243.044 50.293C252.699 54.431 258.96 63.925 258.96 74.4297V128.542C258.96 175.815 236.309 220.2 198.085 247.94L197.18 248.593L145.264 285.676C136.276 292.096 124.25 292.197 115.167 285.978L114.736 285.676L62.8203 248.593C24.0499 220.899 1.04004 176.187 1.04004 128.542V74.4297C1.04004 64.0891 7.10644 54.7283 16.5059 50.4912L16.9561 50.293L119.655 6.27832Z" stroke="#708BF4" stroke-opacity="0.05" stroke-width="2.08"/>
+<path d="M120.451 17.2793C126.358 14.7477 133.02 14.6687 138.975 17.042L139.549 17.2793L234.349 57.9082C243.261 61.7279 249.04 70.491 249.04 80.1875V130.138C249.04 173.775 228.131 214.745 192.848 240.352L192.012 240.954L144.089 275.185C135.792 281.111 124.692 281.204 116.308 275.463L115.911 275.185L67.9883 240.954C32.2001 215.391 10.96 174.118 10.96 130.138V80.1875C10.9601 70.6424 16.56 62.0019 25.2363 58.0908L25.6514 57.9082L120.451 17.2793Z" stroke="#708BF4" stroke-opacity="0.15" stroke-width="1.92"/>
+<path d="M121.294 28.3906C126.68 26.0825 132.754 26.0099 138.183 28.1738L138.706 28.3906L225.605 65.6328C233.731 69.1153 239 77.1057 239 85.9463V131.733C239 171.381 220.152 208.625 188.301 232.109L186.774 233.218L142.846 264.596C135.282 269.999 125.161 270.083 117.517 264.849L117.154 264.596L73.2256 233.218C40.4513 209.807 21 172.01 21 131.733V85.9463C21 77.2438 26.1053 69.3657 34.0156 65.7998L34.3945 65.6328L121.294 28.3906Z" stroke="#708BF4" stroke-opacity="0.5" stroke-width="2"/>
+<path d="M77.8584 226.327L117.794 254.853C125.096 260.068 134.904 260.068 142.206 254.853L182.141 226.327C212.176 204.874 230 170.238 230 133.329V91.7045C230 83.3039 224.994 75.7116 217.272 72.4024L138.272 38.5453C132.99 36.2813 127.01 36.2813 121.728 38.5453L42.7277 72.4024C35.0063 75.7116 30 83.3039 30 91.7045V133.329C30 170.238 47.8247 204.874 77.8584 226.327Z" fill="black"/>
+<path d="M77.8584 226.327L117.794 254.853C125.096 260.068 134.904 260.068 142.206 254.853L182.141 226.327C212.176 204.874 230 170.238 230 133.329V91.7045C230 83.3039 224.994 75.7116 217.272 72.4024L138.272 38.5453C132.99 36.2813 127.01 36.2813 121.728 38.5453L42.7277 72.4024C35.0063 75.7116 30 83.3039 30 91.7045V133.329C30 170.238 47.8247 204.874 77.8584 226.327Z" fill="url(#paint0_linear_4659_24215)"/>
+<path d="M123.479 42.6299C127.513 40.9009 132.063 40.8476 136.13 42.4688L136.521 42.6299L215.521 76.4873C221.609 79.0961 225.556 85.0816 225.556 91.7041V133.329C225.556 168.248 208.955 201.051 180.902 221.734L179.559 222.711L139.623 251.236C134.047 255.22 126.615 255.344 120.923 251.609L120.377 251.236L80.4414 222.711C51.5757 202.092 34.4443 168.802 34.4443 133.329V91.7041C34.4445 85.2886 38.1486 79.4713 43.9141 76.7422L44.4785 76.4873L123.479 42.6299Z" stroke="url(#paint1_linear_4659_24215)" stroke-width="8.88889"/>
+<path d="M123.479 42.6299C127.513 40.9009 132.063 40.8476 136.13 42.4688L136.521 42.6299L215.521 76.4873C221.609 79.0961 225.556 85.0816 225.556 91.7041V133.329C225.556 168.248 208.955 201.051 180.902 221.734L179.559 222.711L139.623 251.236C134.047 255.22 126.615 255.344 120.923 251.609L120.377 251.236L80.4414 222.711C51.5757 202.092 34.4443 168.802 34.4443 133.329V91.7041C34.4445 85.2886 38.1486 79.4713 43.9141 76.7422L44.4785 76.4873L123.479 42.6299Z" stroke="url(#paint2_linear_4659_24215)" stroke-width="8.88889"/>
+<path d="M123.479 42.6299C127.513 40.9009 132.063 40.8476 136.13 42.4688L136.521 42.6299L215.521 76.4873C221.609 79.0961 225.556 85.0816 225.556 91.7041V133.329C225.556 168.248 208.955 201.051 180.902 221.734L179.559 222.711L139.623 251.236C134.047 255.22 126.615 255.344 120.923 251.609L120.377 251.236L80.4414 222.711C51.5757 202.092 34.4443 168.802 34.4443 133.329V91.7041C34.4445 85.2886 38.1486 79.4713 43.9141 76.7422L44.4785 76.4873L123.479 42.6299Z" stroke="url(#paint3_linear_4659_24215)" stroke-width="8.88889"/>
+<g filter="url(#filter0_i_4659_24215)">
+<path d="M77.8584 226.327L117.794 254.853C125.096 260.068 134.904 260.068 142.206 254.853L182.141 226.327C212.176 204.874 230 170.238 230 133.329V91.7045C230 83.3039 224.994 75.7116 217.272 72.4024L138.272 38.5453C132.99 36.2813 127.01 36.2813 121.728 38.5453L42.7277 72.4024C35.0063 75.7116 30 83.3039 30 91.7045V133.329C30 170.238 47.8247 204.874 77.8584 226.327Z" fill="black" fill-opacity="0.01"/>
+</g>
+<g filter="url(#filter1_ii_4659_24215)">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.25C163.158 154.25 175.75 141.658 175.75 126.125C175.75 110.592 163.158 98 147.625 98C132.092 98 119.5 110.592 119.5 126.125C119.5 131.628 121.081 136.763 123.813 141.098L85.6611 179.25L104.393 197.982L113.232 189.143L103.339 179.25L113.25 169.339L123.143 179.232L131.982 170.393L122.089 160.5L132.652 149.937C136.987 152.669 142.122 154.25 147.625 154.25ZM147.625 141.75C156.254 141.75 163.25 134.754 163.25 126.125C163.25 117.496 156.254 110.5 147.625 110.5C138.996 110.5 132 117.496 132 126.125C132 134.754 138.996 141.75 147.625 141.75Z" fill="black"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.25C163.158 154.25 175.75 141.658 175.75 126.125C175.75 110.592 163.158 98 147.625 98C132.092 98 119.5 110.592 119.5 126.125C119.5 131.628 121.081 136.763 123.813 141.098L85.6611 179.25L104.393 197.982L113.232 189.143L103.339 179.25L113.25 169.339L123.143 179.232L131.982 170.393L122.089 160.5L132.652 149.937C136.987 152.669 142.122 154.25 147.625 154.25ZM147.625 141.75C156.254 141.75 163.25 134.754 163.25 126.125C163.25 117.496 156.254 110.5 147.625 110.5C138.996 110.5 132 117.496 132 126.125C132 134.754 138.996 141.75 147.625 141.75Z" fill="url(#paint4_linear_4659_24215)"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.25C163.158 154.25 175.75 141.658 175.75 126.125C175.75 110.592 163.158 98 147.625 98C132.092 98 119.5 110.592 119.5 126.125C119.5 131.628 121.081 136.763 123.813 141.098L85.6611 179.25L104.393 197.982L113.232 189.143L103.339 179.25L113.25 169.339L123.143 179.232L131.982 170.393L122.089 160.5L132.652 149.937C136.987 152.669 142.122 154.25 147.625 154.25ZM147.625 141.75C156.254 141.75 163.25 134.754 163.25 126.125C163.25 117.496 156.254 110.5 147.625 110.5C138.996 110.5 132 117.496 132 126.125C132 134.754 138.996 141.75 147.625 141.75Z" fill="url(#paint5_linear_4659_24215)"/>
+</g>
+<defs>
+<filter id="filter0_i_4659_24215" x="30" y="36.8477" width="200" height="221.917" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="2"/>
+<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
+<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.5 0"/>
+<feBlend mode="plus-lighter" in2="shape" result="effect1_innerShadow_4659_24215"/>
+</filter>
+<filter id="filter1_ii_4659_24215" x="85.6611" y="98" width="90.0889" height="99.9814" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="2"/>
+<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
+<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.4 0"/>
+<feBlend mode="normal" in2="shape" result="effect1_innerShadow_4659_24215"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="-2"/>
+<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
+<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0"/>
+<feBlend mode="normal" in2="effect1_innerShadow_4659_24215" result="effect2_innerShadow_4659_24215"/>
+</filter>
+<linearGradient id="paint0_linear_4659_24215" x1="130" y1="35" x2="130" y2="263.571" gradientUnits="userSpaceOnUse">
+<stop stop-color="#19233C"/>
+<stop offset="1" stop-color="#1647C3"/>
+</linearGradient>
+<linearGradient id="paint1_linear_4659_24215" x1="130" y1="35" x2="130" y2="263.571" gradientUnits="userSpaceOnUse">
+<stop stop-color="#C1F2FF"/>
+<stop offset="0.42" stop-color="#2077F8"/>
+<stop offset="0.700262" stop-color="#000F4D"/>
+</linearGradient>
+<linearGradient id="paint2_linear_4659_24215" x1="130" y1="35" x2="130" y2="263.571" gradientUnits="userSpaceOnUse">
+<stop stop-color="#C1F2FF"/>
+<stop offset="0.700262" stop-color="#718CF5"/>
+</linearGradient>
+<linearGradient id="paint3_linear_4659_24215" x1="130" y1="35" x2="130" y2="263.571" gradientUnits="userSpaceOnUse">
+<stop stop-color="#D8E3FF"/>
+<stop offset="0.700262" stop-color="#718CF5"/>
+</linearGradient>
+<linearGradient id="paint4_linear_4659_24215" x1="130.705" y1="98" x2="130.705" y2="197.982" gradientUnits="userSpaceOnUse">
+<stop stop-color="white"/>
+<stop offset="1" stop-color="#6DA8FF"/>
+</linearGradient>
+<linearGradient id="paint5_linear_4659_24215" x1="130.705" y1="98" x2="130.705" y2="197.982" gradientUnits="userSpaceOnUse">
+<stop stop-color="white"/>
+<stop offset="1" stop-color="#6891FE"/>
+</linearGradient>
+<linearGradient id="paint6_linear_4659_24215" x1="190" y1="159" x2="190.533" y2="242.2" gradientUnits="userSpaceOnUse">
+<stop stop-color="#FFC414"/>
+<stop offset="1" stop-color="#FF9500"/>
+</linearGradient>
+<linearGradient id="paint7_linear_4659_24215" x1="190" y1="159" x2="190" y2="230.082" gradientUnits="userSpaceOnUse">
+<stop stop-color="#5C486E"/>
+<stop offset="1" stop-color="#312938"/>
+</linearGradient>
+<linearGradient id="paint8_linear_4659_24215" x1="190" y1="159" x2="190" y2="230.082" gradientUnits="userSpaceOnUse">
+<stop stop-color="white"/>
+<stop offset="1" stop-color="#EBD4FF"/>
+</linearGradient>
+</defs>
+</svg>
diff --git a/res/pictures/hero/seed_shield_light.svg b/res/pictures/hero/seed_shield_light.svg
new file mode 100644
index 0000000..e021c8e
--- /dev/null
+++ b/res/pictures/hero/seed_shield_light.svg
@@ -0,0 +1,106 @@
+<svg width="260" height="298" viewBox="0 0 260 298" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M119.655 6.2793C126.055 3.53675 133.272 3.4513 139.723 6.02246L140.345 6.2793L243.044 50.2939C252.699 54.432 258.96 63.9259 258.96 74.4307V128.543C258.96 175.816 236.309 220.201 198.085 247.941L197.18 248.594L145.264 285.677C136.276 292.097 124.25 292.198 115.167 285.979L114.736 285.677L62.8203 248.594C24.0499 220.9 1.04004 176.188 1.04004 128.543V74.4307C1.04004 64.09 7.10644 54.7293 16.5059 50.4922L16.9561 50.2939L119.655 6.2793Z" stroke="#4A98DC" stroke-opacity="0.05" stroke-width="2.08"/>
+<path d="M120.451 17.2803C126.358 14.7487 133.02 14.6696 138.975 17.043L139.549 17.2803L234.349 57.9092C243.261 61.7289 249.04 70.492 249.04 80.1885V130.139C249.04 173.775 228.131 214.746 192.848 240.353L192.012 240.955L144.089 275.186C135.792 281.112 124.692 281.205 116.308 275.464L115.911 275.186L67.9883 240.955C32.2001 215.392 10.96 174.119 10.96 130.139V80.1885C10.9601 70.6434 16.56 62.0028 25.2363 58.0918L25.6514 57.9092L120.451 17.2803Z" stroke="#4B98DC" stroke-opacity="0.15" stroke-width="1.92"/>
+<path d="M121.294 28.3916C126.68 26.0835 132.754 26.0109 138.183 28.1748L138.706 28.3916L225.605 65.6338C233.731 69.1163 239 77.1066 239 85.9473V131.734C239 171.382 220.152 208.626 188.301 232.11L186.774 233.219L142.846 264.597C135.282 270 125.161 270.084 117.517 264.85L117.154 264.597L73.2256 233.219C40.4513 209.808 21 172.011 21 131.734V85.9473C21 77.2448 26.1053 69.3666 34.0156 65.8008L34.3945 65.6338L121.294 28.3916Z" stroke="#4895DB" stroke-opacity="0.35" stroke-width="2"/>
+<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="black"/>
+<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="url(#paint0_linear_5093_13165)"/>
+<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="url(#paint1_linear_5093_13165)"/>
+<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="url(#paint2_linear_5093_13165)"/>
+<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="url(#paint3_linear_5093_13165)"/>
+<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="url(#paint4_radial_5093_13165)" fill-opacity="0.3"/>
+<path d="M123.479 42.6309C127.513 40.9019 132.063 40.8486 136.13 42.4697L136.521 42.6309L215.521 76.4883C221.609 79.097 225.556 85.0825 225.556 91.7051V133.33C225.556 168.249 208.955 201.052 180.902 221.735L179.559 222.712L139.623 251.237C134.047 255.221 126.615 255.345 120.923 251.61L120.377 251.237L80.4414 222.712C51.5757 202.093 34.4443 168.803 34.4443 133.33V91.7051C34.4445 85.2895 38.1486 79.4723 43.9141 76.7432L44.4785 76.4883L123.479 42.6309Z" stroke="url(#paint5_linear_5093_13165)" stroke-width="8.88889"/>
+<path d="M123.479 42.6309C127.513 40.9019 132.063 40.8486 136.13 42.4697L136.521 42.6309L215.521 76.4883C221.609 79.097 225.556 85.0825 225.556 91.7051V133.33C225.556 168.249 208.955 201.052 180.902 221.735L179.559 222.712L139.623 251.237C134.047 255.221 126.615 255.345 120.923 251.61L120.377 251.237L80.4414 222.712C51.5757 202.093 34.4443 168.803 34.4443 133.33V91.7051C34.4445 85.2895 38.1486 79.4723 43.9141 76.7432L44.4785 76.4883L123.479 42.6309Z" stroke="url(#paint6_linear_5093_13165)" stroke-width="8.88889"/>
+<path d="M123.479 42.6309C127.513 40.9019 132.063 40.8486 136.13 42.4697L136.521 42.6309L215.521 76.4883C221.609 79.097 225.556 85.0825 225.556 91.7051V133.33C225.556 168.249 208.955 201.052 180.902 221.735L179.559 222.712L139.623 251.237C134.047 255.221 126.615 255.345 120.923 251.61L120.377 251.237L80.4414 222.712C51.5757 202.093 34.4443 168.803 34.4443 133.33V91.7051C34.4445 85.2895 38.1486 79.4723 43.9141 76.7432L44.4785 76.4883L123.479 42.6309Z" stroke="url(#paint7_linear_5093_13165)" stroke-width="8.88889"/>
+<path d="M123.479 42.6309C127.513 40.9019 132.063 40.8486 136.13 42.4697L136.521 42.6309L215.521 76.4883C221.609 79.097 225.556 85.0825 225.556 91.7051V133.33C225.556 168.249 208.955 201.052 180.902 221.735L179.559 222.712L139.623 251.237C134.047 255.221 126.615 255.345 120.923 251.61L120.377 251.237L80.4414 222.712C51.5757 202.093 34.4443 168.803 34.4443 133.33V91.7051C34.4445 85.2895 38.1486 79.4723 43.9141 76.7432L44.4785 76.4883L123.479 42.6309Z" stroke="url(#paint8_linear_5093_13165)" stroke-width="8.88889"/>
+<g filter="url(#filter0_i_5093_13165)">
+<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="black" fill-opacity="0.01"/>
+</g>
+<g filter="url(#filter1_ii_5093_13165)">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.251C163.158 154.251 175.75 141.659 175.75 126.126C175.75 110.593 163.158 98.001 147.625 98.001C132.092 98.001 119.5 110.593 119.5 126.126C119.5 131.629 121.081 136.764 123.813 141.099L85.6611 179.251L104.393 197.983L113.232 189.144L103.339 179.251L113.25 169.34L123.143 179.233L131.982 170.394L122.089 160.501L132.652 149.938C136.987 152.67 142.122 154.251 147.625 154.251ZM147.625 141.751C156.254 141.751 163.25 134.755 163.25 126.126C163.25 117.497 156.254 110.501 147.625 110.501C138.996 110.501 132 117.497 132 126.126C132 134.755 138.996 141.751 147.625 141.751Z" fill="black"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.251C163.158 154.251 175.75 141.659 175.75 126.126C175.75 110.593 163.158 98.001 147.625 98.001C132.092 98.001 119.5 110.593 119.5 126.126C119.5 131.629 121.081 136.764 123.813 141.099L85.6611 179.251L104.393 197.983L113.232 189.144L103.339 179.251L113.25 169.34L123.143 179.233L131.982 170.394L122.089 160.501L132.652 149.938C136.987 152.67 142.122 154.251 147.625 154.251ZM147.625 141.751C156.254 141.751 163.25 134.755 163.25 126.126C163.25 117.497 156.254 110.501 147.625 110.501C138.996 110.501 132 117.497 132 126.126C132 134.755 138.996 141.751 147.625 141.751Z" fill="url(#paint9_linear_5093_13165)"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.251C163.158 154.251 175.75 141.659 175.75 126.126C175.75 110.593 163.158 98.001 147.625 98.001C132.092 98.001 119.5 110.593 119.5 126.126C119.5 131.629 121.081 136.764 123.813 141.099L85.6611 179.251L104.393 197.983L113.232 189.144L103.339 179.251L113.25 169.34L123.143 179.233L131.982 170.394L122.089 160.501L132.652 149.938C136.987 152.67 142.122 154.251 147.625 154.251ZM147.625 141.751C156.254 141.751 163.25 134.755 163.25 126.126C163.25 117.497 156.254 110.501 147.625 110.501C138.996 110.501 132 117.497 132 126.126C132 134.755 138.996 141.751 147.625 141.751Z" fill="url(#paint10_linear_5093_13165)"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.251C163.158 154.251 175.75 141.659 175.75 126.126C175.75 110.593 163.158 98.001 147.625 98.001C132.092 98.001 119.5 110.593 119.5 126.126C119.5 131.629 121.081 136.764 123.813 141.099L85.6611 179.251L104.393 197.983L113.232 189.144L103.339 179.251L113.25 169.34L123.143 179.233L131.982 170.394L122.089 160.501L132.652 149.938C136.987 152.67 142.122 154.251 147.625 154.251ZM147.625 141.751C156.254 141.751 163.25 134.755 163.25 126.126C163.25 117.497 156.254 110.501 147.625 110.501C138.996 110.501 132 117.497 132 126.126C132 134.755 138.996 141.751 147.625 141.751Z" fill="url(#paint11_linear_5093_13165)"/>
+</g>
+<defs>
+<filter id="filter0_i_5093_13165" x="30" y="36.8486" width="200" height="221.917" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="2"/>
+<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
+<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.5 0"/>
+<feBlend mode="normal" in2="shape" result="effect1_innerShadow_5093_13165"/>
+</filter>
+<filter id="filter1_ii_5093_13165" x="85.6611" y="98.001" width="90.0889" height="99.9814" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="2"/>
+<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
+<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.3 0"/>
+<feBlend mode="normal" in2="shape" result="effect1_innerShadow_5093_13165"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="-2"/>
+<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
+<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0"/>
+<feBlend mode="normal" in2="effect1_innerShadow_5093_13165" result="effect2_innerShadow_5093_13165"/>
+</filter>
+<linearGradient id="paint0_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
+<stop stop-color="#002A52"/>
+<stop offset="1" stop-color="#0652DF"/>
+</linearGradient>
+<linearGradient id="paint1_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
+<stop stop-color="#19233C"/>
+<stop offset="1" stop-color="#144CD8"/>
+</linearGradient>
+<linearGradient id="paint2_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
+<stop stop-color="#19233C"/>
+<stop offset="1" stop-color="#1647C3"/>
+</linearGradient>
+<linearGradient id="paint3_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
+<stop stop-color="#FAFAFA"/>
+<stop offset="1" stop-color="#72AAFF"/>
+</linearGradient>
+<radialGradient id="paint4_radial_5093_13165" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(130 149.287) rotate(90) scale(97.381 85.2083)">
+<stop stop-color="white"/>
+<stop offset="1" stop-color="white" stop-opacity="0"/>
+</radialGradient>
+<linearGradient id="paint5_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
+<stop stop-color="#C1F2FF"/>
+<stop offset="0.42" stop-color="#2077F8"/>
+<stop offset="0.700262" stop-color="#000F4D"/>
+</linearGradient>
+<linearGradient id="paint6_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
+<stop stop-color="#C1F2FF"/>
+<stop offset="0.700262" stop-color="#718CF5"/>
+</linearGradient>
+<linearGradient id="paint7_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
+<stop stop-color="#D8E3FF"/>
+<stop offset="0.700262" stop-color="#718CF5"/>
+</linearGradient>
+<linearGradient id="paint8_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
+<stop stop-color="#68BEEF"/>
+<stop offset="0.700262" stop-color="#2C71CC"/>
+</linearGradient>
+<linearGradient id="paint9_linear_5093_13165" x1="130.705" y1="98.001" x2="130.705" y2="197.983" gradientUnits="userSpaceOnUse">
+<stop stop-color="white"/>
+<stop offset="1" stop-color="#6DA8FF"/>
+</linearGradient>
+<linearGradient id="paint10_linear_5093_13165" x1="130.705" y1="98.001" x2="130.705" y2="197.983" gradientUnits="userSpaceOnUse">
+<stop stop-color="#68BEEF"/>
+<stop offset="1" stop-color="#0047A3"/>
+</linearGradient>
+<linearGradient id="paint11_linear_5093_13165" x1="130.705" y1="98.001" x2="130.705" y2="197.983" gradientUnits="userSpaceOnUse">
+<stop stop-color="#68BEEF"/>
+<stop offset="0.700262" stop-color="#2C71CC"/>
+</linearGradient>
+<linearGradient id="paint12_linear_5093_13165" x1="190" y1="159" x2="190.533" y2="242.2" gradientUnits="userSpaceOnUse">
+<stop stop-color="#FFC414"/>
+<stop offset="1" stop-color="#FF9500"/>
+</linearGradient>
+<linearGradient id="paint13_linear_5093_13165" x1="190" y1="159" x2="190" y2="230.082" gradientUnits="userSpaceOnUse">
+<stop stop-color="#5C486E"/>
+<stop offset="1" stop-color="#312938"/>
+</linearGradient>
+</defs>
+</svg>
diff --git a/res/pictures/hero/seed_warning_dark.svg b/res/pictures/hero/seed_warning_dark.svg
new file mode 100644
index 0000000..0a47254
--- /dev/null
+++ b/res/pictures/hero/seed_warning_dark.svg
@@ -0,0 +1,86 @@
+<svg width="260" height="298" viewBox="0 0 260 298" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M119.655 6.27832C126.055 3.53578 133.272 3.45033 139.723 6.02148L140.345 6.27832L243.044 50.293C252.699 54.431 258.96 63.925 258.96 74.4297V128.542C258.96 175.815 236.309 220.2 198.085 247.94L197.18 248.593L145.264 285.676C136.276 292.096 124.25 292.197 115.167 285.978L114.736 285.676L62.8203 248.593C24.0499 220.899 1.04004 176.187 1.04004 128.542V74.4297C1.04004 64.0891 7.10644 54.7283 16.5059 50.4912L16.9561 50.293L119.655 6.27832Z" stroke="#708BF4" stroke-opacity="0.05" stroke-width="2.08"/>
+<path d="M120.451 17.2793C126.358 14.7477 133.02 14.6687 138.975 17.042L139.549 17.2793L234.349 57.9082C243.261 61.7279 249.04 70.491 249.04 80.1875V130.138C249.04 173.775 228.131 214.745 192.848 240.352L192.012 240.954L144.089 275.185C135.792 281.111 124.692 281.204 116.308 275.463L115.911 275.185L67.9883 240.954C32.2001 215.391 10.96 174.118 10.96 130.138V80.1875C10.9601 70.6424 16.56 62.0019 25.2363 58.0908L25.6514 57.9082L120.451 17.2793Z" stroke="#708BF4" stroke-opacity="0.15" stroke-width="1.92"/>
+<path d="M121.294 28.3906C126.68 26.0825 132.754 26.0099 138.183 28.1738L138.706 28.3906L225.605 65.6328C233.731 69.1153 239 77.1057 239 85.9463V131.733C239 171.381 220.152 208.625 188.301 232.109L186.774 233.218L142.846 264.596C135.282 269.999 125.161 270.083 117.517 264.849L117.154 264.596L73.2256 233.218C40.4513 209.807 21 172.01 21 131.733V85.9463C21 77.2438 26.1053 69.3657 34.0156 65.7998L34.3945 65.6328L121.294 28.3906Z" stroke="#708BF4" stroke-opacity="0.5" stroke-width="2"/>
+<path d="M77.8584 226.327L117.794 254.853C125.096 260.068 134.904 260.068 142.206 254.853L182.141 226.327C212.176 204.874 230 170.238 230 133.329V91.7045C230 83.3039 224.994 75.7116 217.272 72.4024L138.272 38.5453C132.99 36.2813 127.01 36.2813 121.728 38.5453L42.7277 72.4024C35.0063 75.7116 30 83.3039 30 91.7045V133.329C30 170.238 47.8247 204.874 77.8584 226.327Z" fill="black"/>
+<path d="M77.8584 226.327L117.794 254.853C125.096 260.068 134.904 260.068 142.206 254.853L182.141 226.327C212.176 204.874 230 170.238 230 133.329V91.7045C230 83.3039 224.994 75.7116 217.272 72.4024L138.272 38.5453C132.99 36.2813 127.01 36.2813 121.728 38.5453L42.7277 72.4024C35.0063 75.7116 30 83.3039 30 91.7045V133.329C30 170.238 47.8247 204.874 77.8584 226.327Z" fill="url(#paint0_linear_4659_24215)"/>
+<path d="M123.479 42.6299C127.513 40.9009 132.063 40.8476 136.13 42.4688L136.521 42.6299L215.521 76.4873C221.609 79.0961 225.556 85.0816 225.556 91.7041V133.329C225.556 168.248 208.955 201.051 180.902 221.734L179.559 222.711L139.623 251.236C134.047 255.22 126.615 255.344 120.923 251.609L120.377 251.236L80.4414 222.711C51.5757 202.092 34.4443 168.802 34.4443 133.329V91.7041C34.4445 85.2886 38.1486 79.4713 43.9141 76.7422L44.4785 76.4873L123.479 42.6299Z" stroke="url(#paint1_linear_4659_24215)" stroke-width="8.88889"/>
+<path d="M123.479 42.6299C127.513 40.9009 132.063 40.8476 136.13 42.4688L136.521 42.6299L215.521 76.4873C221.609 79.0961 225.556 85.0816 225.556 91.7041V133.329C225.556 168.248 208.955 201.051 180.902 221.734L179.559 222.711L139.623 251.236C134.047 255.22 126.615 255.344 120.923 251.609L120.377 251.236L80.4414 222.711C51.5757 202.092 34.4443 168.802 34.4443 133.329V91.7041C34.4445 85.2886 38.1486 79.4713 43.9141 76.7422L44.4785 76.4873L123.479 42.6299Z" stroke="url(#paint2_linear_4659_24215)" stroke-width="8.88889"/>
+<path d="M123.479 42.6299C127.513 40.9009 132.063 40.8476 136.13 42.4688L136.521 42.6299L215.521 76.4873C221.609 79.0961 225.556 85.0816 225.556 91.7041V133.329C225.556 168.248 208.955 201.051 180.902 221.734L179.559 222.711L139.623 251.236C134.047 255.22 126.615 255.344 120.923 251.609L120.377 251.236L80.4414 222.711C51.5757 202.092 34.4443 168.802 34.4443 133.329V91.7041C34.4445 85.2886 38.1486 79.4713 43.9141 76.7422L44.4785 76.4873L123.479 42.6299Z" stroke="url(#paint3_linear_4659_24215)" stroke-width="8.88889"/>
+<g filter="url(#filter0_i_4659_24215)">
+<path d="M77.8584 226.327L117.794 254.853C125.096 260.068 134.904 260.068 142.206 254.853L182.141 226.327C212.176 204.874 230 170.238 230 133.329V91.7045C230 83.3039 224.994 75.7116 217.272 72.4024L138.272 38.5453C132.99 36.2813 127.01 36.2813 121.728 38.5453L42.7277 72.4024C35.0063 75.7116 30 83.3039 30 91.7045V133.329C30 170.238 47.8247 204.874 77.8584 226.327Z" fill="black" fill-opacity="0.01"/>
+</g>
+<g filter="url(#filter1_ii_4659_24215)">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.25C163.158 154.25 175.75 141.658 175.75 126.125C175.75 110.592 163.158 98 147.625 98C132.092 98 119.5 110.592 119.5 126.125C119.5 131.628 121.081 136.763 123.813 141.098L85.6611 179.25L104.393 197.982L113.232 189.143L103.339 179.25L113.25 169.339L123.143 179.232L131.982 170.393L122.089 160.5L132.652 149.937C136.987 152.669 142.122 154.25 147.625 154.25ZM147.625 141.75C156.254 141.75 163.25 134.754 163.25 126.125C163.25 117.496 156.254 110.5 147.625 110.5C138.996 110.5 132 117.496 132 126.125C132 134.754 138.996 141.75 147.625 141.75Z" fill="black"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.25C163.158 154.25 175.75 141.658 175.75 126.125C175.75 110.592 163.158 98 147.625 98C132.092 98 119.5 110.592 119.5 126.125C119.5 131.628 121.081 136.763 123.813 141.098L85.6611 179.25L104.393 197.982L113.232 189.143L103.339 179.25L113.25 169.339L123.143 179.232L131.982 170.393L122.089 160.5L132.652 149.937C136.987 152.669 142.122 154.25 147.625 154.25ZM147.625 141.75C156.254 141.75 163.25 134.754 163.25 126.125C163.25 117.496 156.254 110.5 147.625 110.5C138.996 110.5 132 117.496 132 126.125C132 134.754 138.996 141.75 147.625 141.75Z" fill="url(#paint4_linear_4659_24215)"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.25C163.158 154.25 175.75 141.658 175.75 126.125C175.75 110.592 163.158 98 147.625 98C132.092 98 119.5 110.592 119.5 126.125C119.5 131.628 121.081 136.763 123.813 141.098L85.6611 179.25L104.393 197.982L113.232 189.143L103.339 179.25L113.25 169.339L123.143 179.232L131.982 170.393L122.089 160.5L132.652 149.937C136.987 152.669 142.122 154.25 147.625 154.25ZM147.625 141.75C156.254 141.75 163.25 134.754 163.25 126.125C163.25 117.496 156.254 110.5 147.625 110.5C138.996 110.5 132 117.496 132 126.125C132 134.754 138.996 141.75 147.625 141.75Z" fill="url(#paint5_linear_4659_24215)"/>
+</g>
+<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" fill="#D9D9D9"/>
+<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" fill="url(#paint6_linear_4659_24215)"/>
+<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" stroke="#312938" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" stroke="url(#paint7_linear_4659_24215)" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" stroke="url(#paint8_linear_4659_24215)" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M189.907 212.209H189.952M189.907 198.907V185.604" stroke="#312938" stroke-width="8.86825" stroke-linecap="round" stroke-linejoin="round"/>
+<defs>
+<filter id="filter0_i_4659_24215" x="30" y="36.8477" width="200" height="221.917" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="2"/>
+<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
+<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.5 0"/>
+<feBlend mode="plus-lighter" in2="shape" result="effect1_innerShadow_4659_24215"/>
+</filter>
+<filter id="filter1_ii_4659_24215" x="85.6611" y="98" width="90.0889" height="99.9814" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="2"/>
+<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
+<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.4 0"/>
+<feBlend mode="normal" in2="shape" result="effect1_innerShadow_4659_24215"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="-2"/>
+<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
+<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0"/>
+<feBlend mode="normal" in2="effect1_innerShadow_4659_24215" result="effect2_innerShadow_4659_24215"/>
+</filter>
+<linearGradient id="paint0_linear_4659_24215" x1="130" y1="35" x2="130" y2="263.571" gradientUnits="userSpaceOnUse">
+<stop stop-color="#19233C"/>
+<stop offset="1" stop-color="#1647C3"/>
+</linearGradient>
+<linearGradient id="paint1_linear_4659_24215" x1="130" y1="35" x2="130" y2="263.571" gradientUnits="userSpaceOnUse">
+<stop stop-color="#C1F2FF"/>
+<stop offset="0.42" stop-color="#2077F8"/>
+<stop offset="0.700262" stop-color="#000F4D"/>
+</linearGradient>
+<linearGradient id="paint2_linear_4659_24215" x1="130" y1="35" x2="130" y2="263.571" gradientUnits="userSpaceOnUse">
+<stop stop-color="#C1F2FF"/>
+<stop offset="0.700262" stop-color="#718CF5"/>
+</linearGradient>
+<linearGradient id="paint3_linear_4659_24215" x1="130" y1="35" x2="130" y2="263.571" gradientUnits="userSpaceOnUse">
+<stop stop-color="#D8E3FF"/>
+<stop offset="0.700262" stop-color="#718CF5"/>
+</linearGradient>
+<linearGradient id="paint4_linear_4659_24215" x1="130.705" y1="98" x2="130.705" y2="197.982" gradientUnits="userSpaceOnUse">
+<stop stop-color="white"/>
+<stop offset="1" stop-color="#6DA8FF"/>
+</linearGradient>
+<linearGradient id="paint5_linear_4659_24215" x1="130.705" y1="98" x2="130.705" y2="197.982" gradientUnits="userSpaceOnUse">
+<stop stop-color="white"/>
+<stop offset="1" stop-color="#6891FE"/>
+</linearGradient>
+<linearGradient id="paint6_linear_4659_24215" x1="190" y1="159" x2="190.533" y2="242.2" gradientUnits="userSpaceOnUse">
+<stop stop-color="#FFC414"/>
+<stop offset="1" stop-color="#FF9500"/>
+</linearGradient>
+<linearGradient id="paint7_linear_4659_24215" x1="190" y1="159" x2="190" y2="230.082" gradientUnits="userSpaceOnUse">
+<stop stop-color="#5C486E"/>
+<stop offset="1" stop-color="#312938"/>
+</linearGradient>
+<linearGradient id="paint8_linear_4659_24215" x1="190" y1="159" x2="190" y2="230.082" gradientUnits="userSpaceOnUse">
+<stop stop-color="white"/>
+<stop offset="1" stop-color="#EBD4FF"/>
+</linearGradient>
+</defs>
+</svg>
diff --git a/res/pictures/hero/seed_warning_light.svg b/res/pictures/hero/seed_warning_light.svg
new file mode 100644
index 0000000..cab27ec
--- /dev/null
+++ b/res/pictures/hero/seed_warning_light.svg
@@ -0,0 +1,111 @@
+<svg width="260" height="298" viewBox="0 0 260 298" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M119.655 6.2793C126.055 3.53675 133.272 3.4513 139.723 6.02246L140.345 6.2793L243.044 50.2939C252.699 54.432 258.96 63.9259 258.96 74.4307V128.543C258.96 175.816 236.309 220.201 198.085 247.941L197.18 248.594L145.264 285.677C136.276 292.097 124.25 292.198 115.167 285.979L114.736 285.677L62.8203 248.594C24.0499 220.9 1.04004 176.188 1.04004 128.543V74.4307C1.04004 64.09 7.10644 54.7293 16.5059 50.4922L16.9561 50.2939L119.655 6.2793Z" stroke="#4A98DC" stroke-opacity="0.05" stroke-width="2.08"/>
+<path d="M120.451 17.2803C126.358 14.7487 133.02 14.6696 138.975 17.043L139.549 17.2803L234.349 57.9092C243.261 61.7289 249.04 70.492 249.04 80.1885V130.139C249.04 173.775 228.131 214.746 192.848 240.353L192.012 240.955L144.089 275.186C135.792 281.112 124.692 281.205 116.308 275.464L115.911 275.186L67.9883 240.955C32.2001 215.392 10.96 174.119 10.96 130.139V80.1885C10.9601 70.6434 16.56 62.0028 25.2363 58.0918L25.6514 57.9092L120.451 17.2803Z" stroke="#4B98DC" stroke-opacity="0.15" stroke-width="1.92"/>
+<path d="M121.294 28.3916C126.68 26.0835 132.754 26.0109 138.183 28.1748L138.706 28.3916L225.605 65.6338C233.731 69.1163 239 77.1066 239 85.9473V131.734C239 171.382 220.152 208.626 188.301 232.11L186.774 233.219L142.846 264.597C135.282 270 125.161 270.084 117.517 264.85L117.154 264.597L73.2256 233.219C40.4513 209.808 21 172.011 21 131.734V85.9473C21 77.2448 26.1053 69.3666 34.0156 65.8008L34.3945 65.6338L121.294 28.3916Z" stroke="#4895DB" stroke-opacity="0.35" stroke-width="2"/>
+<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="black"/>
+<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="url(#paint0_linear_5093_13165)"/>
+<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="url(#paint1_linear_5093_13165)"/>
+<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="url(#paint2_linear_5093_13165)"/>
+<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="url(#paint3_linear_5093_13165)"/>
+<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="url(#paint4_radial_5093_13165)" fill-opacity="0.3"/>
+<path d="M123.479 42.6309C127.513 40.9019 132.063 40.8486 136.13 42.4697L136.521 42.6309L215.521 76.4883C221.609 79.097 225.556 85.0825 225.556 91.7051V133.33C225.556 168.249 208.955 201.052 180.902 221.735L179.559 222.712L139.623 251.237C134.047 255.221 126.615 255.345 120.923 251.61L120.377 251.237L80.4414 222.712C51.5757 202.093 34.4443 168.803 34.4443 133.33V91.7051C34.4445 85.2895 38.1486 79.4723 43.9141 76.7432L44.4785 76.4883L123.479 42.6309Z" stroke="url(#paint5_linear_5093_13165)" stroke-width="8.88889"/>
+<path d="M123.479 42.6309C127.513 40.9019 132.063 40.8486 136.13 42.4697L136.521 42.6309L215.521 76.4883C221.609 79.097 225.556 85.0825 225.556 91.7051V133.33C225.556 168.249 208.955 201.052 180.902 221.735L179.559 222.712L139.623 251.237C134.047 255.221 126.615 255.345 120.923 251.61L120.377 251.237L80.4414 222.712C51.5757 202.093 34.4443 168.803 34.4443 133.33V91.7051C34.4445 85.2895 38.1486 79.4723 43.9141 76.7432L44.4785 76.4883L123.479 42.6309Z" stroke="url(#paint6_linear_5093_13165)" stroke-width="8.88889"/>
+<path d="M123.479 42.6309C127.513 40.9019 132.063 40.8486 136.13 42.4697L136.521 42.6309L215.521 76.4883C221.609 79.097 225.556 85.0825 225.556 91.7051V133.33C225.556 168.249 208.955 201.052 180.902 221.735L179.559 222.712L139.623 251.237C134.047 255.221 126.615 255.345 120.923 251.61L120.377 251.237L80.4414 222.712C51.5757 202.093 34.4443 168.803 34.4443 133.33V91.7051C34.4445 85.2895 38.1486 79.4723 43.9141 76.7432L44.4785 76.4883L123.479 42.6309Z" stroke="url(#paint7_linear_5093_13165)" stroke-width="8.88889"/>
+<path d="M123.479 42.6309C127.513 40.9019 132.063 40.8486 136.13 42.4697L136.521 42.6309L215.521 76.4883C221.609 79.097 225.556 85.0825 225.556 91.7051V133.33C225.556 168.249 208.955 201.052 180.902 221.735L179.559 222.712L139.623 251.237C134.047 255.221 126.615 255.345 120.923 251.61L120.377 251.237L80.4414 222.712C51.5757 202.093 34.4443 168.803 34.4443 133.33V91.7051C34.4445 85.2895 38.1486 79.4723 43.9141 76.7432L44.4785 76.4883L123.479 42.6309Z" stroke="url(#paint8_linear_5093_13165)" stroke-width="8.88889"/>
+<g filter="url(#filter0_i_5093_13165)">
+<path d="M77.8584 226.328L117.794 254.854C125.096 260.069 134.904 260.069 142.206 254.854L182.141 226.328C212.176 204.875 230 170.239 230 133.33V91.7054C230 83.3049 224.994 75.7126 217.272 72.4034L138.272 38.5462C132.99 36.2823 127.01 36.2823 121.728 38.5463L42.7277 72.4034C35.0063 75.7126 30 83.3049 30 91.7054V133.33C30 170.239 47.8247 204.875 77.8584 226.328Z" fill="black" fill-opacity="0.01"/>
+</g>
+<g filter="url(#filter1_ii_5093_13165)">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.251C163.158 154.251 175.75 141.659 175.75 126.126C175.75 110.593 163.158 98.001 147.625 98.001C132.092 98.001 119.5 110.593 119.5 126.126C119.5 131.629 121.081 136.764 123.813 141.099L85.6611 179.251L104.393 197.983L113.232 189.144L103.339 179.251L113.25 169.34L123.143 179.233L131.982 170.394L122.089 160.501L132.652 149.938C136.987 152.67 142.122 154.251 147.625 154.251ZM147.625 141.751C156.254 141.751 163.25 134.755 163.25 126.126C163.25 117.497 156.254 110.501 147.625 110.501C138.996 110.501 132 117.497 132 126.126C132 134.755 138.996 141.751 147.625 141.751Z" fill="black"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.251C163.158 154.251 175.75 141.659 175.75 126.126C175.75 110.593 163.158 98.001 147.625 98.001C132.092 98.001 119.5 110.593 119.5 126.126C119.5 131.629 121.081 136.764 123.813 141.099L85.6611 179.251L104.393 197.983L113.232 189.144L103.339 179.251L113.25 169.34L123.143 179.233L131.982 170.394L122.089 160.501L132.652 149.938C136.987 152.67 142.122 154.251 147.625 154.251ZM147.625 141.751C156.254 141.751 163.25 134.755 163.25 126.126C163.25 117.497 156.254 110.501 147.625 110.501C138.996 110.501 132 117.497 132 126.126C132 134.755 138.996 141.751 147.625 141.751Z" fill="url(#paint9_linear_5093_13165)"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.251C163.158 154.251 175.75 141.659 175.75 126.126C175.75 110.593 163.158 98.001 147.625 98.001C132.092 98.001 119.5 110.593 119.5 126.126C119.5 131.629 121.081 136.764 123.813 141.099L85.6611 179.251L104.393 197.983L113.232 189.144L103.339 179.251L113.25 169.34L123.143 179.233L131.982 170.394L122.089 160.501L132.652 149.938C136.987 152.67 142.122 154.251 147.625 154.251ZM147.625 141.751C156.254 141.751 163.25 134.755 163.25 126.126C163.25 117.497 156.254 110.501 147.625 110.501C138.996 110.501 132 117.497 132 126.126C132 134.755 138.996 141.751 147.625 141.751Z" fill="url(#paint10_linear_5093_13165)"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M147.625 154.251C163.158 154.251 175.75 141.659 175.75 126.126C175.75 110.593 163.158 98.001 147.625 98.001C132.092 98.001 119.5 110.593 119.5 126.126C119.5 131.629 121.081 136.764 123.813 141.099L85.6611 179.251L104.393 197.983L113.232 189.144L103.339 179.251L113.25 169.34L123.143 179.233L131.982 170.394L122.089 160.501L132.652 149.938C136.987 152.67 142.122 154.251 147.625 154.251ZM147.625 141.751C156.254 141.751 163.25 134.755 163.25 126.126C163.25 117.497 156.254 110.501 147.625 110.501C138.996 110.501 132 117.497 132 126.126C132 134.755 138.996 141.751 147.625 141.751Z" fill="url(#paint11_linear_5093_13165)"/>
+</g>
+<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" fill="#D9D9D9"/>
+<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" fill="url(#paint12_linear_5093_13165)"/>
+<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" stroke="#312938" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M158.882 230.082H221.118C227.963 230.082 232.227 222.658 228.779 216.746L197.66 163.4C194.238 157.533 185.762 157.533 182.34 163.4L151.221 216.746C147.773 222.658 152.037 230.082 158.882 230.082Z" stroke="url(#paint13_linear_5093_13165)" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M189.907 212.209H189.952M189.907 198.907V185.604" stroke="#312938" stroke-width="8.86825" stroke-linecap="round" stroke-linejoin="round"/>
+<defs>
+<filter id="filter0_i_5093_13165" x="30" y="36.8486" width="200" height="221.917" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="2"/>
+<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
+<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.5 0"/>
+<feBlend mode="normal" in2="shape" result="effect1_innerShadow_5093_13165"/>
+</filter>
+<filter id="filter1_ii_5093_13165" x="85.6611" y="98.001" width="90.0889" height="99.9814" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
+<feFlood flood-opacity="0" result="BackgroundImageFix"/>
+<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="2"/>
+<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
+<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.3 0"/>
+<feBlend mode="normal" in2="shape" result="effect1_innerShadow_5093_13165"/>
+<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
+<feOffset dy="-2"/>
+<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
+<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0"/>
+<feBlend mode="normal" in2="effect1_innerShadow_5093_13165" result="effect2_innerShadow_5093_13165"/>
+</filter>
+<linearGradient id="paint0_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
+<stop stop-color="#002A52"/>
+<stop offset="1" stop-color="#0652DF"/>
+</linearGradient>
+<linearGradient id="paint1_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
+<stop stop-color="#19233C"/>
+<stop offset="1" stop-color="#144CD8"/>
+</linearGradient>
+<linearGradient id="paint2_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
+<stop stop-color="#19233C"/>
+<stop offset="1" stop-color="#1647C3"/>
+</linearGradient>
+<linearGradient id="paint3_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
+<stop stop-color="#FAFAFA"/>
+<stop offset="1" stop-color="#72AAFF"/>
+</linearGradient>
+<radialGradient id="paint4_radial_5093_13165" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(130 149.287) rotate(90) scale(97.381 85.2083)">
+<stop stop-color="white"/>
+<stop offset="1" stop-color="white" stop-opacity="0"/>
+</radialGradient>
+<linearGradient id="paint5_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
+<stop stop-color="#C1F2FF"/>
+<stop offset="0.42" stop-color="#2077F8"/>
+<stop offset="0.700262" stop-color="#000F4D"/>
+</linearGradient>
+<linearGradient id="paint6_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
+<stop stop-color="#C1F2FF"/>
+<stop offset="0.700262" stop-color="#718CF5"/>
+</linearGradient>
+<linearGradient id="paint7_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
+<stop stop-color="#D8E3FF"/>
+<stop offset="0.700262" stop-color="#718CF5"/>
+</linearGradient>
+<linearGradient id="paint8_linear_5093_13165" x1="130" y1="35.001" x2="130" y2="263.572" gradientUnits="userSpaceOnUse">
+<stop stop-color="#68BEEF"/>
+<stop offset="0.700262" stop-color="#2C71CC"/>
+</linearGradient>
+<linearGradient id="paint9_linear_5093_13165" x1="130.705" y1="98.001" x2="130.705" y2="197.983" gradientUnits="userSpaceOnUse">
+<stop stop-color="white"/>
+<stop offset="1" stop-color="#6DA8FF"/>
+</linearGradient>
+<linearGradient id="paint10_linear_5093_13165" x1="130.705" y1="98.001" x2="130.705" y2="197.983" gradientUnits="userSpaceOnUse">
+<stop stop-color="#68BEEF"/>
+<stop offset="1" stop-color="#0047A3"/>
+</linearGradient>
+<linearGradient id="paint11_linear_5093_13165" x1="130.705" y1="98.001" x2="130.705" y2="197.983" gradientUnits="userSpaceOnUse">
+<stop stop-color="#68BEEF"/>
+<stop offset="0.700262" stop-color="#2C71CC"/>
+</linearGradient>
+<linearGradient id="paint12_linear_5093_13165" x1="190" y1="159" x2="190.533" y2="242.2" gradientUnits="userSpaceOnUse">
+<stop stop-color="#FFC414"/>
+<stop offset="1" stop-color="#FF9500"/>
+</linearGradient>
+<linearGradient id="paint13_linear_5093_13165" x1="190" y1="159" x2="190" y2="230.082" gradientUnits="userSpaceOnUse">
+<stop stop-color="#5C486E"/>
+<stop offset="1" stop-color="#312938"/>
+</linearGradient>
+</defs>
+</svg>
diff --git a/res/pictures/key.svg b/res/pictures/key.svg
new file mode 100644
index 0000000..ffba77c
--- /dev/null
+++ b/res/pictures/key.svg
@@ -0,0 +1,5 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="Frame">
+<path id="Vector" d="M14.125 9.125C14.7083 8.54167 15 7.83333 15 7C15 6.16667 14.7083 5.45833 14.125 4.875C13.5417 4.29167 12.8333 4 12 4C11.1667 4 10.4583 4.29167 9.875 4.875C9.29167 5.45833 9 6.16667 9 7C9 7.83333 9.29167 8.54167 9.875 9.125C10.4583 9.70833 11.1667 10 12 10C12.8333 10 13.5417 9.70833 14.125 9.125ZM12.05 23L8 19L10 17L8 15L10 13V12.65C8.8 12.2333 7.83333 11.5083 7.1 10.475C6.36667 9.44167 6 8.28333 6 7C6 5.33333 6.58333 3.91667 7.75 2.75C8.91667 1.58333 10.3333 1 12 1C13.6667 1 15.0833 1.58333 16.25 2.75C17.4167 3.91667 18 5.33333 18 7C18 8.35 17.6167 9.52917 16.85 10.5375C16.0833 11.5458 15.1333 12.25 14 12.65V21L12.05 23Z" fill="#91B0FF"/>
+</g>
+</svg>
diff --git a/res/pictures/visibility.svg b/res/pictures/visibility.svg
new file mode 100644
index 0000000..9bee407
--- /dev/null
+++ b/res/pictures/visibility.svg
@@ -0,0 +1,5 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="Frame">
+<path id="Vector" d="M15.1875 14.6875C16.0625 13.8125 16.5 12.75 16.5 11.5C16.5 10.25 16.0625 9.1875 15.1875 8.3125C14.3125 7.4375 13.25 7 12 7C10.75 7 9.6875 7.4375 8.8125 8.3125C7.9375 9.1875 7.5 10.25 7.5 11.5C7.5 12.75 7.9375 13.8125 8.8125 14.6875C9.6875 15.5625 10.75 16 12 16C13.25 16 14.3125 15.5625 15.1875 14.6875ZM10.0875 13.4125C9.5625 12.8875 9.3 12.25 9.3 11.5C9.3 10.75 9.5625 10.1125 10.0875 9.5875C10.6125 9.0625 11.25 8.8 12 8.8C12.75 8.8 13.3875 9.0625 13.9125 9.5875C14.4375 10.1125 14.7 10.75 14.7 11.5C14.7 12.25 14.4375 12.8875 13.9125 13.4125C13.3875 13.9375 12.75 14.2 12 14.2C11.25 14.2 10.6125 13.9375 10.0875 13.4125ZM5.35 16.9625C3.35 15.6042 1.9 13.7833 1 11.5C1.9 9.21667 3.35 7.39583 5.35 6.0375C7.35 4.67917 9.56667 4 12 4C14.4333 4 16.65 4.67917 18.65 6.0375C20.65 7.39583 22.1 9.21667 23 11.5C22.1 13.7833 20.65 15.6042 18.65 16.9625C16.65 18.3208 14.4333 19 12 19C9.56667 19 7.35 18.3208 5.35 16.9625Z" fill="#91B0FF"/>
+</g>
+</svg>
diff --git a/res/pictures/warning_triangle.svg b/res/pictures/warning_triangle.svg
new file mode 100644
index 0000000..884b0b0
--- /dev/null
+++ b/res/pictures/warning_triangle.svg
@@ -0,0 +1,28 @@
+<svg width="125" height="111.722" viewBox="0 0 125 111.722" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g id="warning">
+<g id="Vector">
+<path d="M16.1943 108.747H108.802C118.987 108.747 125.333 97.6989 120.201 88.9018L73.897 9.52312C68.8047 0.793941 56.1921 0.793941 51.0997 9.52312L4.79597 88.9018C-0.335731 97.6989 6.0098 108.747 16.1943 108.747Z" fill="#D9D9D9"/>
+<path d="M16.1943 108.747H108.802C118.987 108.747 125.333 97.6989 120.201 88.9018L73.897 9.52312C68.8047 0.793941 56.1921 0.793941 51.0997 9.52312L4.79597 88.9018C-0.335731 97.6989 6.0098 108.747 16.1943 108.747Z" fill="url(#paint0_linear_0_38)"/>
+</g>
+<g id="Vector (Stroke)">
+<path d="M48.5311 8.02287C54.7719 -2.67405 70.228 -2.6741 76.4688 8.02287L122.773 87.4027C129.062 98.1839 121.285 111.722 108.804 111.722H16.1961C3.71493 111.722 -4.06161 98.1838 2.22726 87.4027L48.5311 8.02287ZM71.3277 11.0221C67.3837 4.26218 57.6163 4.26224 53.6722 11.0221L7.36841 90.4019C3.39444 97.2149 8.30857 105.77 16.1961 105.77H108.804C116.692 105.77 121.606 97.2148 117.631 90.4019L71.3277 11.0221Z" fill="#312938"/>
+<path d="M48.5311 8.02287C54.7719 -2.67405 70.228 -2.6741 76.4688 8.02287L122.773 87.4027C129.062 98.1839 121.285 111.722 108.804 111.722H16.1961C3.71493 111.722 -4.06161 98.1838 2.22726 87.4027L48.5311 8.02287ZM71.3277 11.0221C67.3837 4.26218 57.6163 4.26224 53.6722 11.0221L7.36841 90.4019C3.39444 97.2149 8.30857 105.77 16.1961 105.77H108.804C116.692 105.77 121.606 97.2148 117.631 90.4019L71.3277 11.0221Z" fill="url(#paint1_linear_0_38)"/>
+<path d="M48.5311 8.02287C54.7719 -2.67405 70.228 -2.6741 76.4688 8.02287L122.773 87.4027C129.062 98.1839 121.285 111.722 108.804 111.722H16.1961C3.71493 111.722 -4.06161 98.1838 2.22726 87.4027L48.5311 8.02287ZM71.3277 11.0221C67.3837 4.26218 57.6163 4.26224 53.6722 11.0221L7.36841 90.4019C3.39444 97.2149 8.30857 105.77 16.1961 105.77H108.804C116.692 105.77 121.606 97.2148 117.631 90.4019L71.3277 11.0221Z" fill="url(#paint2_linear_0_38)"/>
+</g>
+<path id="Vector_2" d="M62.3633 82.1515H62.4293M62.3633 62.3576V42.5636" stroke="#312938" stroke-width="13.1959" stroke-linecap="round" stroke-linejoin="round"/>
+</g>
+<defs>
+<linearGradient id="paint0_linear_0_38" x1="62.4985" y1="2.97624" x2="63.2921" y2="126.778" gradientUnits="userSpaceOnUse">
+<stop stop-color="#FFC414"/>
+<stop offset="1" stop-color="#FF9500"/>
+</linearGradient>
+<linearGradient id="paint1_linear_0_38" x1="62.4999" y1="2.97617" x2="62.4999" y2="108.746" gradientUnits="userSpaceOnUse">
+<stop stop-color="#5C486E"/>
+<stop offset="1" stop-color="#312938"/>
+</linearGradient>
+<linearGradient id="paint2_linear_0_38" x1="62.4999" y1="2.97617" x2="62.4999" y2="108.746" gradientUnits="userSpaceOnUse">
+<stop stop-color="white"/>
+<stop offset="1" stop-color="#EBD4FF"/>
+</linearGradient>
+</defs>
+</svg>
Why this scored 11/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.