git.iko.soy/rowtype-yoga/psfp
on master help sign in
Add landing page
commit133b502a8705d7e70e339374534168b7db1b3781 authorMark Eibes <mark.eibes@gmail.com> dateFri 4 Oct 2019, 00:48 (7 years ago) parent21e940e
45 files changed+499−291
.storybook/preview-head.html+8−2 .vscode/settings.json+1 assets/alternative.svg → assets/icons/alternative.svg assets/ap.svg → assets/icons/ap.svg assets/append.svg → assets/icons/append.svg assets/apply.svg → assets/icons/apply.svg assets/applyflipped.svg → assets/icons/applyflipped.svg assets/bind.svg → assets/icons/bind.svg assets/compose.svg → assets/icons/compose.svg assets/composeflipped.svg → assets/icons/composeflipped.svg assets/forall.svg → assets/icons/forall.svg assets/kleisli.svg → assets/icons/kleisli.svg assets/icons/landingpagedark.svg+1 assets/icons/landingpagelight.svg+1 assets/icons/lovelogo.svg+1 assets/map.svg → assets/icons/map.svg assets/mapflipped.svg → assets/icons/mapflipped.svg assets/menu.svg → assets/icons/menu.svg assets/pslogo.svg → assets/icons/pslogo.svg assets/icons/trianglelogo.svg+1 assets/images/landingpagedark.svg+1 assets/images/landingpagelight.svg+1 src/Button/Component.purs+20−12 src/CSS/Safer.purs+8 src/Card/Component.purs+5−5 src/Container/Component.purs+17−16 src/Container/Header.purs+59−55 src/Container/Landing.purs+140 src/Container/Sidebar.purs+10−11 src/Element.purs+5−4 src/SVG/Icon.js+14−12 src/SVG/Icon.purs+23−24 src/SVG/Image.js+4 src/SVG/Image.purs+17 src/Theme.purs+92 src/Theme/Default.purs+23−30 src/Theme/Styles.purs+2−2 src/Theme/Types.purs−80 src/Typography/Header.purs+7−7 src/Typography/Paragraph.purs+5−4 stories/ButtonStories.purs−1 stories/ContainerStories.purs−4 stories/Decorator/FullScreen.purs+25−10 stories/ThemeStories.purs+8−7 stories/TypographyStories.purs−5
.storybook/preview-head.html+8−2
@@ -1,2 +1,8 @@
1−<link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,500,600,700,800,900&display=swap" rel="stylesheet">
2−<style> html, body, #app { min-height: 100%; min-width: 100% }</style>
1+<link href="https://fonts.googleapis.com/css?family=Overpass|Playfair+Display|Montserrat:300,400,500,600,700,800,900&display=swap" rel="stylesheet">
2+<style> html, body, #app
3+ {
4+
5+ margin: 0;
6+ padding: 0;
7+ }
8+</style>
.vscode/settings.json+1
@@ -16,4 +16,5 @@
1616 "replace": "∀$1"
1717 },
1818],
19+"purescript.buildCommand": "spago build --purs-args '--json-errors'",
1920}
assets/alternative.svg → assets/icons/alternative.svgrenamed

The content is the same.

assets/ap.svg → assets/icons/ap.svgrenamed

The content is the same.

assets/append.svg → assets/icons/append.svgrenamed

The content is the same.

assets/apply.svg → assets/icons/apply.svgrenamed

The content is the same.

assets/applyflipped.svg → assets/icons/applyflipped.svgrenamed

The content is the same.

assets/bind.svg → assets/icons/bind.svgrenamed

The content is the same.

assets/compose.svg → assets/icons/compose.svgrenamed

The content is the same.

assets/composeflipped.svg → assets/icons/composeflipped.svgrenamed

The content is the same.

assets/forall.svg → assets/icons/forall.svgrenamed

The content is the same.

assets/kleisli.svg → assets/icons/kleisli.svgrenamed

The content is the same.

assets/icons/landingpagedark.svgnew file+1
@@ -0,0 +1 @@
1+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 800 447" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><rect id="Artboard1" x="0" y="0" width="800" height="446.374" style="fill:none;"/><clipPath id="_clip1"><rect x="0" y="0" width="800" height="446.374"/></clipPath><g clip-path="url(#_clip1)"><g id="Background"><path d="M800.828,448.051l0,-451.564l-803.856,0l0,451.564l803.856,0Z" style="fill:url(#_Linear2);"/><ellipse cx="174.599" cy="310.24" rx="330.479" ry="252.189" style="fill:url(#_Radial3);"/></g><g id="Stars"><circle cx="362.644" cy="4.733" r="1.461" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="334.392" cy="11.38" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="369.845" cy="6.949" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="72.557" cy="31.323" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="49.291" cy="25.229" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><circle cx="403.867" cy="17.97" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><ellipse cx="125.013" cy="9.633" rx="0.737" ry="0.821" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="87.333" cy="15.439" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M709.089,15.919c-0.575,0.333 -1.312,0.135 -1.644,-0.44c-0.333,-0.576 -0.135,-1.313 0.44,-1.645c0.576,-0.332 1.313,-0.135 1.645,0.441c0.332,0.575 0.135,1.312 -0.441,1.644Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M716.544,3.358c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.341 -0.08,-0.779 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M701.851,87.271c-0.342,0.198 -0.78,0.081 -0.977,-0.261c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.197 0.779,-0.08 0.976,0.262c0.198,0.341 0.081,0.779 -0.261,0.976Z" style="fill:#fffeee;fill-opacity:0.69;"/><path d="M669.995,7.519c-0.342,0.197 -0.78,0.08 -0.977,-0.262c-0.198,-0.341 -0.08,-0.779 0.261,-0.976c0.342,-0.198 0.78,-0.081 0.977,0.261c0.198,0.342 0.08,0.78 -0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M465.032,24.138c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.342 0.08,0.779 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M614.599,24.138c-0.341,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.342,-0.197 0.78,-0.08 0.977,0.262c0.197,0.342 0.08,0.779 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M691.664,7.383c-0.698,0.403 -1.592,0.163 -1.995,-0.535c-0.403,-0.698 -0.164,-1.592 0.534,-1.995c0.698,-0.403 1.592,-0.163 1.996,0.535c0.403,0.698 0.163,1.592 -0.535,1.995Z" style="fill:#fee;fill-opacity:0.69;"/><circle cx="198.7" cy="7.738" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="244.102" cy="79.308" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M104.17,29.677c0.342,0.198 0.78,0.08 0.977,-0.262c0.198,-0.341 0.08,-0.779 -0.261,-0.976c-0.342,-0.198 -0.78,-0.08 -0.977,0.261c-0.198,0.342 -0.08,0.78 0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="203.07" cy="73.278" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="193.264" cy="22.459" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="157.667" cy="14.848" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="261.444" cy="28.257" r="0.805" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="223.281" cy="52.803" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M583.698,25.392c-0.342,-0.197 -0.78,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.341 0.08,-0.779 -0.262,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="330.57" cy="98.448" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="330.376" cy="79.267" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="365.972" cy="26.878" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="112.16" cy="59.167" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="800.966" cy="4.978" r="0.826" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="794.399" cy="127.828" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="771.687" cy="32.202" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="794.953" cy="26.108" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><path d="M44.17,26.599c0.342,-0.198 0.78,-0.08 0.977,0.262c0.198,0.341 0.08,0.779 -0.261,0.976c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.261,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="133.264" cy="33.817" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="97.667" cy="41.428" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="201.444" cy="28.019" r="0.805" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="163.281" cy="23.473" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M523.698,30.884c-0.342,0.197 -0.78,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.341 0.08,0.779 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="305.972" cy="29.398" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="769.852" cy="44.016" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="711.687" cy="24.074" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="734.953" cy="30.168" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><circle cx="717.719" cy="10.364" r="0.673" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="756.911" cy="16.319" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M454.676,37.115c0.698,0.403 1.592,0.163 1.995,-0.535c0.403,-0.698 0.164,-1.592 -0.534,-1.995c-0.698,-0.403 -1.592,-0.164 -1.995,0.534c-0.404,0.698 -0.164,1.592 0.534,1.996Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M465.701,47.253c0.342,0.197 0.78,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.779 -0.262,-0.977c-0.342,-0.197 -0.779,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M32.393,28.151c0.342,0.197 0.78,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.78 -0.262,-0.977c-0.341,-0.197 -0.779,-0.08 -0.976,0.262c-0.198,0.342 -0.08,0.779 0.261,0.977Z" style="fill:#fffeee;fill-opacity:0.69;"/><path d="M494.249,8.398c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.261c-0.198,0.342 -0.08,0.78 0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M699.212,25.017c0.342,0.197 0.78,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.779 -0.262,-0.977c-0.342,-0.197 -0.779,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M549.645,25.017c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.779 -0.262,-0.977c-0.342,-0.197 -0.78,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M472.652,7.069c0.442,0.255 1.009,0.103 1.265,-0.339c0.255,-0.443 0.103,-1.01 -0.339,-1.265c-0.443,-0.256 -1.01,-0.104 -1.265,0.339c-0.256,0.442 -0.104,1.009 0.339,1.265Z" style="fill:#fee;fill-opacity:0.69;"/><path d="M416.68,31.856c0.488,0.282 1.112,0.114 1.394,-0.373c0.281,-0.488 0.114,-1.112 -0.374,-1.393c-0.487,-0.282 -1.112,-0.115 -1.393,0.373c-0.281,0.487 -0.114,1.112 0.373,1.393Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M529.444,13.243c0.565,0.326 1.289,0.132 1.615,-0.433c0.326,-0.565 0.132,-1.289 -0.433,-1.615c-0.565,-0.326 -1.289,-0.133 -1.615,0.433c-0.326,0.565 -0.132,1.288 0.433,1.615Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M498.917,29.864c0.52,0.3 1.186,0.122 1.486,-0.398c0.301,-0.52 0.122,-1.186 -0.398,-1.486c-0.52,-0.3 -1.186,-0.122 -1.486,0.398c-0.3,0.52 -0.122,1.186 0.398,1.486Z" style="fill:#fff8e8;fill-opacity:0.69;"/><circle cx="573.265" cy="5.3" r="0.967" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="648.544" cy="38.618" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="638.738" cy="17.799" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="274.158" cy="3.264" r="1.069" style="fill:#fee;fill-opacity:0.69;"/><circle cx="213.142" cy="10.187" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M173.074,50.556c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.198 0.779,-0.08 0.976,0.262c0.198,0.341 0.08,0.779 -0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M323.074,50.556c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.198 0.779,-0.08 0.976,0.262c0.198,0.341 0.08,0.779 -0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M353.074,50.556c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.198 0.779,-0.08 0.976,0.262c0.198,0.341 0.08,0.779 -0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M383.074,50.556c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.198 0.779,-0.08 0.976,0.262c0.198,0.341 0.08,0.779 -0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="254.174" cy="44.157" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="263.98" cy="23.339" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="299.577" cy="15.727" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="195.559" cy="38.849" r="1.461" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="233.963" cy="33.683" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M37.775,12.928c0.342,-0.197 0.78,-0.08 0.977,0.262c0.197,0.342 0.08,0.779 -0.262,0.977c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="146.674" cy="49.327" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="126.868" cy="20.146" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="481.272" cy="27.758" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="735.084" cy="60.046" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M623.013,27.532c-0.698,0.403 -1.592,0.163 -1.995,-0.535c-0.403,-0.698 -0.164,-1.592 0.535,-1.995c0.698,-0.403 1.592,-0.164 1.995,0.535c0.403,0.698 0.163,1.592 -0.535,1.995Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M520.261,21.259c-0.698,0.403 -1.592,0.163 -1.995,-0.535c-0.403,-0.698 -0.164,-1.592 0.534,-1.995c0.698,-0.403 1.592,-0.164 1.995,0.535c0.404,0.698 0.164,1.592 -0.534,1.995Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M554.976,21.878c-0.52,0.3 -1.186,0.122 -1.486,-0.398c-0.3,-0.52 -0.122,-1.186 0.398,-1.486c0.52,-0.3 1.186,-0.122 1.486,0.398c0.301,0.52 0.122,1.186 -0.398,1.486Z" style="fill:#fff8e8;fill-opacity:0.69;"/><circle cx="591.184" cy="24.216" r="0.762" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="208.506" cy="36.92" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="183.086" cy="22.385" r="1.069" style="fill:#fee;fill-opacity:0.69;"/><circle cx="153.07" cy="32.998" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="280.376" cy="27.009" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="62.16" cy="47.109" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="260.57" cy="57.828" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="740.966" cy="51.298" r="0.826" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="801.399" cy="55.949" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="778.687" cy="80.323" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="801.953" cy="74.229" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><ellipse cx="726.231" cy="58.633" rx="0.737" ry="0.821" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="763.911" cy="64.439" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M462.155,64.919c0.575,0.333 1.312,0.135 1.644,-0.44c0.333,-0.576 0.135,-1.313 -0.44,-1.645c-0.576,-0.332 -1.313,-0.135 -1.645,0.441c-0.332,0.575 -0.135,1.312 0.441,1.644Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M454.7,52.358c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.341 0.08,-0.779 -0.262,-0.977c-0.342,-0.197 -0.779,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M469.393,136.271c0.342,0.198 0.78,0.081 0.977,-0.261c0.197,-0.342 0.08,-0.78 -0.262,-0.977c-0.341,-0.197 -0.779,-0.08 -0.976,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#fffeee;fill-opacity:0.69;"/><path d="M501.249,56.519c0.342,0.197 0.78,0.08 0.977,-0.262c0.198,-0.341 0.08,-0.779 -0.261,-0.976c-0.342,-0.198 -0.78,-0.081 -0.977,0.261c-0.198,0.342 -0.08,0.78 0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M706.212,73.138c0.342,0.197 0.78,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.78 -0.262,-0.977c-0.342,-0.197 -0.779,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.779 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M556.645,73.138c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.78 -0.262,-0.977c-0.342,-0.197 -0.78,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.779 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M729.58,36.383c0.698,0.403 1.592,0.163 1.995,-0.535c0.403,-0.698 0.164,-1.592 -0.534,-1.995c-0.698,-0.403 -1.592,-0.163 -1.995,0.535c-0.403,0.698 -0.164,1.592 0.534,1.995Z" style="fill:#fee;fill-opacity:0.69;"/><path d="M548.231,56.532c0.698,0.403 1.592,0.163 1.995,-0.535c0.403,-0.698 0.164,-1.592 -0.535,-1.995c-0.698,-0.403 -1.592,-0.164 -1.995,0.535c-0.403,0.698 -0.163,1.592 0.535,1.995Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M650.983,50.259c0.698,0.403 1.592,0.163 1.995,-0.535c0.403,-0.698 0.164,-1.592 -0.534,-1.995c-0.698,-0.403 -1.592,-0.164 -1.995,0.535c-0.403,0.698 -0.164,1.592 0.534,1.995Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M616.268,50.878c0.52,0.3 1.186,0.122 1.486,-0.398c0.3,-0.52 0.122,-1.186 -0.398,-1.486c-0.52,-0.3 -1.186,-0.122 -1.486,0.398c-0.301,0.52 -0.122,1.186 0.398,1.486Z" style="fill:#fff8e8;fill-opacity:0.69;"/><circle cx="580.06" cy="53.216" r="0.762" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="655.544" cy="86.738" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="645.738" cy="65.92" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="681.158" cy="31.385" r="1.069" style="fill:#fee;fill-opacity:0.69;"/><circle cx="610.142" cy="158.308" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M750.074,78.677c-0.342,0.198 -0.78,0.08 -0.977,-0.262c-0.198,-0.341 -0.08,-0.779 0.262,-0.976c0.341,-0.198 0.779,-0.08 0.976,0.261c0.198,0.342 0.08,0.78 -0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="651.174" cy="122.278" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="660.98" cy="71.459" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="696.577" cy="63.848" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="592.8" cy="77.257" r="0.805" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="630.963" cy="81.803" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M270.546,74.392c0.342,-0.197 0.78,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.341 -0.08,-0.779 0.262,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="533.674" cy="47.448" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="523.868" cy="128.267" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="488.272" cy="75.878" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="742.084" cy="108.167" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="53.278" cy="53.978" r="0.826" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="24.392" cy="61.26" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="59.845" cy="176.828" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="82.557" cy="81.202" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="59.291" cy="75.108" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><circle cx="13.635" cy="87.617" r="1.228" style="fill:#fee;fill-opacity:0.69;"/><circle cx="136.525" cy="59.364" r="0.673" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="97.333" cy="65.319" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M399.568,66.115c-0.698,0.403 -1.592,0.163 -1.995,-0.535c-0.403,-0.698 -0.164,-1.592 0.534,-1.995c0.699,-0.403 1.593,-0.164 1.996,0.534c0.403,0.698 0.163,1.592 -0.535,1.996Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M398.543,46.253c-0.342,0.197 -0.78,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.779 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M391.851,117.151c-0.342,0.197 -0.78,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.197 0.779,-0.08 0.976,0.262c0.198,0.342 0.081,0.779 -0.261,0.977Z" style="fill:#fffeee;fill-opacity:0.69;"/><path d="M359.995,57.398c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.261,-0.977c0.342,-0.198 0.78,-0.08 0.977,0.261c0.198,0.342 0.08,0.78 -0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M155.032,74.017c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.779 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M304.599,74.017c-0.341,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.779 0.262,-0.977c0.342,-0.197 0.78,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M381.592,56.069c-0.442,0.255 -1.009,0.103 -1.265,-0.339c-0.255,-0.443 -0.103,-1.01 0.339,-1.265c0.443,-0.256 1.01,-0.104 1.265,0.339c0.256,0.442 0.104,1.009 -0.339,1.265Z" style="fill:#fee;fill-opacity:0.69;"/><path d="M437.564,80.856c-0.488,0.282 -1.112,0.114 -1.393,-0.373c-0.282,-0.488 -0.115,-1.112 0.373,-1.393c0.487,-0.282 1.112,-0.115 1.393,0.373c0.282,0.487 0.114,1.112 -0.373,1.393Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M314.8,32.243c-0.565,0.326 -1.288,0.132 -1.615,-0.433c-0.326,-0.565 -0.132,-1.289 0.433,-1.615c0.565,-0.326 1.289,-0.133 1.615,0.433c0.326,0.565 0.132,1.288 -0.433,1.615Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M355.327,78.864c-0.52,0.3 -1.186,0.122 -1.486,-0.398c-0.3,-0.52 -0.122,-1.186 0.398,-1.486c0.52,-0.3 1.186,-0.122 1.486,0.398c0.3,0.52 0.122,1.186 -0.398,1.486Z" style="fill:#fff8e8;fill-opacity:0.69;"/><circle cx="280.979" cy="54.3" r="0.967" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="205.7" cy="87.618" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="215.506" cy="176.799" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="190.086" cy="52.264" r="1.069" style="fill:#fee;fill-opacity:0.69;"/><circle cx="251.102" cy="59.187" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M301.17,49.556c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M151.17,49.556c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M121.17,49.556c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M91.17,49.556c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="210.07" cy="93.157" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="200.264" cy="72.339" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="164.667" cy="64.727" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="268.685" cy="127.849" r="1.461" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="230.281" cy="82.683" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M426.469,61.928c-0.342,-0.197 -0.78,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.779 0.262,0.977c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.78 -0.262,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="327.57" cy="48.327" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="337.376" cy="69.146" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="372.972" cy="76.758" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="119.16" cy="109.046" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/></g><g id="Clouds"><path id="_-Curve-" serif:id="(Curve)" d="M610.291,177.316c-35.879,-0.428 -84.67,-0.691 -138.392,-0.689c-38.684,0.002 -74.811,0.141 -105.402,0.38c-49.14,-2.745 -80.877,-9.954 -80.877,-14.718c0,-1.333 2.655,0.335 7.294,-0.896c96.772,-0.175 171.302,-1.213 171.302,-2.464c0,-1.107 -59.462,-3.372 -140.106,-3.687c38.487,-2.059 102.543,-4.972 173.823,-4.972c11.996,0 23.761,0.07 35.216,0.206c20.76,-4.638 60.945,-2.784 107.07,-2.784c36.08,0 68.525,-0.075 90.882,2.983c32.491,0.899 72.142,-1.186 114.922,-0.379c38.68,0.729 74.805,1.273 105.395,1.613c49.101,3.673 80.599,8.516 80.54,13.279c-0.016,1.334 -2.504,2.58 -7.158,3.723c-96.763,-1.654 -171.297,-2.024 -171.312,-0.774c-0.013,1.108 58.473,3.15 139.105,4.989c-38.514,3.085 -101.653,4.38 -172.925,3.033c-11.995,-0.227 -23.757,-0.52 -35.209,-0.872c-20.815,4.245 -61.034,6.631 -107.154,5.759c-24.754,-0.468 -47.786,-1.809 -67.014,-3.73Z" style="fill:#240c3c;"/><path id="_-Curve-1" serif:id="(Curve)" d="M609.299,171.607c-35.88,-0.338 -84.67,-0.545 -138.392,-0.543c-38.684,0.001 -74.812,0.111 -105.402,0.299c-49.141,-2.166 -80.694,-5.519 -80.694,-9.279c0,-1.052 2.472,-2.073 7.111,-3.045c96.772,-0.137 171.302,-0.957 171.302,-1.944c-0.001,-0.874 -58.506,-1.614 -139.15,-1.862c38.471,-3.009 101.587,-4.973 172.867,-4.973c11.996,0 23.761,0.055 35.216,0.162c20.76,-3.66 60.945,-6.143 107.07,-6.143c36.08,0 68.525,1.519 90.882,3.933c32.491,0.709 72.142,1.432 114.922,2.069c38.68,0.575 74.805,1.005 105.395,1.272c49.101,2.9 80.598,6.722 80.54,10.482c-0.017,1.052 -2.505,2.036 -7.158,2.938c-96.763,-1.305 -171.297,-1.597 -171.312,-0.611c-0.014,0.875 58.473,2.486 139.104,3.938c-38.514,2.435 -101.653,3.457 -172.924,2.394c-11.995,-0.179 -23.758,-0.41 -35.21,-0.688c-20.814,3.35 -61.033,5.234 -107.153,4.545c-24.754,-0.369 -47.786,-1.428 -67.014,-2.944Z" style="fill:#120b38;"/><path d="M684.234,222.269c-12.108,-1.642 -29.721,-2.832 -29.76,-5.218c-0.063,-3.861 34.226,-4.225 76.6,-3.504c42.375,0.721 75.9,-2.707 76.956,1.008c2.476,8.704 -12.549,8.552 -32.56,10.141c-12.403,-0.58 -28.24,0.216 -44.434,0.479c-16.193,0.263 -35.197,-1.331 -46.802,-2.906Z" style="fill:url(#_Linear4);"/><path d="M130.064,213.821c42.381,0 76.789,0.237 76.789,4.224c0,3.986 -14.408,4.223 -56.789,4.223c-42.38,0 -96.788,0.208 -96.788,-4.223c0,-4.431 34.408,-4.224 76.788,-4.224Z" style="fill:#a7847d;"/></g><g id="Mountains"><path d="M476.098,218.299l81.644,216.765l-205.408,0l123.764,-216.765Z" style="fill:#04102d;"/><path d="M476.098,218.299l21.823,203.477l81.177,-8.706l-103,-194.771Z" style="fill:#250849;"/><path d="M369.627,308.648l88.326,125.788l-205.407,0l117.081,-125.788Z" style="fill:#04102d;"/><path d="M326.11,338.332l68.193,96.732l-205.407,0l137.214,-96.732Z" style="fill:#04102d;"/><path d="M508.168,243.792l163.526,204.747l-256.643,0l93.117,-204.747Z" style="fill:#04102d;"/><path d="M508.168,245.355l63.395,75.115l-54.953,46.379l-8.442,-121.494Z" style="fill:#250849;"/><path d="M369.612,308.648l54.182,77.687l-58.981,41.135l4.799,-118.822Z" style="fill:#250849;"/><path d="M326.184,338.326l16.813,23.99l-16.887,11.835l0.074,-35.825Z" style="fill:#250849;"/><path d="M633.647,230.42l175.693,204.644l-351.387,0l175.694,-204.644Z" style="fill:#04102d;"/><path d="M633.647,230.42l101.573,245.129l86.041,-35.653l-187.614,-209.476Z" style="fill:#250849;"/><path d="M643.625,254.389c-0.57,0.219 -0.744,0.283 -1.862,0.819c-2.862,1.393 -6.074,3.204 -9.177,2.636c-6.182,-1.132 -10.808,-6.27 -16.675,-6.724l17.736,-20.7l9.978,23.969Z" style="fill:#655578;"/><path d="M654.153,253.404c-0.495,-0.027 -0.799,-0.017 -0.799,-0.017c-3.255,-0.486 -6.617,-0.192 -9.677,0.982l-0.052,0.02l-9.978,-23.969l20.506,22.984Z" style="fill:#9d779e;"/></g><g id="Buildings"><path d="M195.171,451.298l0,-292.145l-102.462,0l0,292.145l102.462,0Z" style="fill:url(#_Linear5);"/><path d="M289.755,451.298l0,-218.487l-57.232,0l0,218.487l57.232,0Z" style="fill:url(#_Linear6);"/><path d="M323.451,451.298l0,-123.585l-71.555,0l0,123.585l71.555,0Z" style="fill:url(#_Linear7);"/><path d="M207.557,451.298l0,-218.487l25.314,0l0,218.487l-25.314,0Z" style="fill:#130425;"/><path d="M92.709,451.298l0,-292.145l25.314,0l0,292.145l-25.314,0Z" style="fill:#130425;"/><path d="M323.451,451.298l0,-123.585l-16.692,0l0,123.585l16.692,0Z" style="fill:url(#_Linear8);"/><path d="M272.498,451.298l0,-95.771l-136.555,0l0,95.771l136.555,0Z" style="fill:url(#_Linear9);"/><path d="M85.122,451.298l0,-178.856l-97.675,0l0,178.856l97.675,0Z" style="fill:url(#_Linear10);"/><path d="M173.526,451.298l0,-95.771l-37.583,0l0,95.771l37.583,0Z" style="fill:#2e1232;"/><path d="M66.649,456.944l0,-184.502l-69.677,0l0,184.502l69.677,0Z" style="fill:url(#_Linear11);"/></g><rect x="-3.028" y="431.298" width="826.844" height="20.006" style="fill:#253141;"/><g id="Laptop"><path d="M606.064,273.603c0,-6.261 -5.076,-11.337 -11.337,-11.337c-37.536,0 -157.517,0 -195.054,0c-6.261,0 -11.337,5.076 -11.337,11.337c0,33.077 0,128.577 0,151.521c0,1.326 0.527,2.598 1.465,3.536c0.938,0.937 2.209,1.464 3.535,1.464c29.3,0 178.429,0 207.728,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-22.944 0,-118.444 0,-151.521Z" style="fill:#657390;"/><path d="M606.064,273.603c0,-6.261 -5.076,-11.337 -11.337,-11.337c-37.536,0 -157.517,0 -195.054,0c-6.261,0 -11.337,5.076 -11.337,11.337c0,33.077 0,128.577 0,151.521c0,1.326 0.527,2.598 1.465,3.536c0.938,0.937 2.209,1.464 3.535,1.464c29.3,0 178.429,0 207.728,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-22.944 0,-118.444 0,-151.521Z" style="fill:#657390;"/><path d="M599.193,275.905c0,-3.05 -2.476,-5.526 -5.526,-5.526l-193.063,0c-3.05,0 -5.526,2.476 -5.526,5.526l0,141.039c0,3.05 2.476,5.526 5.526,5.526l193.063,0c3.05,0 5.526,-2.476 5.526,-5.526l0,-141.039Z" style="fill:#130c2b;"/><path d="M655.04,427.228c0,-0.252 -0.205,-0.457 -0.457,-0.457c-13.334,0 -313.753,0 -313.753,0l0,4.975c0,2.761 2.239,5 5,5c36.953,0 267.257,0 304.21,0c2.761,0 5,-2.239 5,-5c0,-1.845 0,-3.687 0,-4.518Z" style="fill:url(#_Linear12);"/><circle id="Camera" cx="497.178" cy="267.001" r="1.238" style="fill-opacity:0.45;"/><circle id="Mic" cx="500.009" cy="267.001" r="0.527" style="fill-opacity:0.45;"/><circle id="Ambient-Light-" serif:id="Ambient Light?" cx="494.263" cy="267.001" r="0.527" style="fill:#102708;fill-opacity:0.45;"/><g id="Icon"><path d="M543.109,335.27l-18.005,-18.014l-4.857,4.857l15.576,15.585l-15.576,15.582l4.857,4.856l18.005,-18.007c0.649,-0.652 1.008,-1.516 1.008,-2.434c-0.004,-0.918 -0.359,-1.778 -1.008,-2.425" style="fill:#ccffd6;fill-rule:nonzero;"/><path d="M497.136,326.699c7.364,-7.356 19.316,-7.354 26.677,0.007c7.361,7.362 7.364,19.313 0.007,26.677l0.007,0.007l-26.684,26.684l-26.684,-26.684c-7.364,-7.363 -7.364,-19.32 0,-26.684c7.361,-7.361 19.313,-7.363 26.677,-0.007Z" style="fill:#c47dff;"/><path d="M473.797,339.323l-4.859,-4.857l-18.012,18.01c-0.647,0.646 -1.004,1.511 -1.001,2.428c0,0.918 0.354,1.781 1.001,2.428l18.012,18.012l4.859,-4.856l-15.583,-15.584l15.583,-15.581Z" style="fill:#ccffd6;fill-rule:nonzero;"/></g></g></g><defs><linearGradient id="_Linear2" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-8.64246e-14,451.564,-803.856,-1.43038e-13,398.9,-3.51255)"><stop offset="0" style="stop-color:#000434;stop-opacity:1"/><stop offset="0.28" style="stop-color:#171043;stop-opacity:1"/><stop offset="0.68" style="stop-color:#573774;stop-opacity:1"/><stop offset="1" style="stop-color:#b8734e;stop-opacity:1"/></linearGradient><radialGradient id="_Radial3" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(330.479,0,0,252.189,174.599,310.24)"><stop offset="0" style="stop-color:#f60;stop-opacity:0.3"/><stop offset="1" style="stop-color:#fff552;stop-opacity:0"/></radialGradient><linearGradient id="_Linear4" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-0.538323,-17.3125,1.44013,-0.04478,749.812,228.864)"><stop offset="0" style="stop-color:#e59f77;stop-opacity:1"/><stop offset="0.47" style="stop-color:#a46075;stop-opacity:1"/><stop offset="1" style="stop-color:#914d74;stop-opacity:1"/></linearGradient><linearGradient id="_Linear5" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(31.4265,292.145,-292.145,31.4265,112.513,159.153)"><stop offset="0" style="stop-color:#08001b;stop-opacity:1"/><stop offset="1" style="stop-color:#571547;stop-opacity:1"/></linearGradient><linearGradient id="_Linear6" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(19.1616,218.487,-218.487,19.1616,241.977,232.811)"><stop offset="0" style="stop-color:#000418;stop-opacity:1"/><stop offset="1" style="stop-color:#571548;stop-opacity:1"/></linearGradient><linearGradient id="_Linear7" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(46.7869,123.585,-71.5547,27.0893,259.972,327.713)"><stop offset="0" style="stop-color:#000418;stop-opacity:1"/><stop offset="1" style="stop-color:#571548;stop-opacity:1"/></linearGradient><linearGradient id="_Linear8" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0,123.585,-123.585,0,315.105,327.713)"><stop offset="0" style="stop-color:#3a0843;stop-opacity:1"/><stop offset="1" style="stop-color:#9f5c6a;stop-opacity:1"/></linearGradient><linearGradient id="_Linear9" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(89.6564,47.8855,-47.8855,89.6564,162.618,355.527)"><stop offset="0" style="stop-color:#2c1d2f;stop-opacity:1"/><stop offset="1" style="stop-color:#480445;stop-opacity:1"/></linearGradient><linearGradient id="_Linear10" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-7.19036,106.447,-106.447,-7.19036,77.8467,255.423)"><stop offset="0" style="stop-color:#2c1d2f;stop-opacity:1"/><stop offset="1" style="stop-color:#480445;stop-opacity:1"/></linearGradient><linearGradient id="_Linear11" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(20.5602,1.9877e-06,-184.503,2.215e-07,11.2504,272.442)"><stop offset="0" style="stop-color:#000624;stop-opacity:1"/><stop offset="1" style="stop-color:#4f1557;stop-opacity:1"/></linearGradient><linearGradient id="_Linear12" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(314.21,0,0,9.97478,340.83,431.758)"><stop offset="0" style="stop-color:#a9abc1;stop-opacity:1"/><stop offset="0.11" style="stop-color:#65687d;stop-opacity:1"/><stop offset="0.5" style="stop-color:#c3c5d2;stop-opacity:1"/><stop offset="0.89" style="stop-color:#64677c;stop-opacity:1"/><stop offset="1" style="stop-color:#a4a7c2;stop-opacity:1"/></linearGradient></defs></svg>
assets/icons/landingpagelight.svgnew file+1
@@ -0,0 +1 @@
1+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 800 447" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><rect id="Artboard1" x="0" y="0" width="800" height="446.374" style="fill:none;"/><clipPath id="_clip1"><rect x="0" y="0" width="800" height="446.374"/></clipPath><g clip-path="url(#_clip1)"><g id="Background"><path d="M800.828,448.051l0,-451.564l-803.856,0l0,451.564l803.856,0Z" style="fill:url(#_Linear2);"/><ellipse cx="842.486" cy="270.379" rx="647.316" ry="459.814" style="fill:url(#_Radial3);"/></g><g id="Stars" opacity="0.15"><circle cx="362.644" cy="4.733" r="1.461" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="334.392" cy="11.38" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="369.845" cy="6.949" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="72.557" cy="31.323" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="49.291" cy="25.229" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><circle cx="403.867" cy="17.97" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><ellipse cx="125.013" cy="9.633" rx="0.737" ry="0.821" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="87.333" cy="15.439" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M709.089,15.919c-0.575,0.333 -1.312,0.135 -1.644,-0.44c-0.333,-0.576 -0.135,-1.313 0.44,-1.645c0.576,-0.332 1.313,-0.135 1.645,0.441c0.332,0.575 0.135,1.312 -0.441,1.644Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M716.544,3.358c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.341 -0.08,-0.779 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M701.851,87.271c-0.342,0.198 -0.78,0.081 -0.977,-0.261c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.197 0.779,-0.08 0.976,0.262c0.198,0.341 0.081,0.779 -0.261,0.976Z" style="fill:#fffeee;fill-opacity:0.69;"/><path d="M669.995,7.519c-0.342,0.197 -0.78,0.08 -0.977,-0.262c-0.198,-0.341 -0.08,-0.779 0.261,-0.976c0.342,-0.198 0.78,-0.081 0.977,0.261c0.198,0.342 0.08,0.78 -0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M465.032,24.138c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.342 0.08,0.779 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M614.599,24.138c-0.341,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.342,-0.197 0.78,-0.08 0.977,0.262c0.197,0.342 0.08,0.779 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M691.664,7.383c-0.698,0.403 -1.592,0.163 -1.995,-0.535c-0.403,-0.698 -0.164,-1.592 0.534,-1.995c0.698,-0.403 1.592,-0.163 1.996,0.535c0.403,0.698 0.163,1.592 -0.535,1.995Z" style="fill:#fee;fill-opacity:0.69;"/><circle cx="198.7" cy="7.738" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="244.102" cy="79.308" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M104.17,29.677c0.342,0.198 0.78,0.08 0.977,-0.262c0.198,-0.341 0.08,-0.779 -0.261,-0.976c-0.342,-0.198 -0.78,-0.08 -0.977,0.261c-0.198,0.342 -0.08,0.78 0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="203.07" cy="73.278" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="193.264" cy="22.459" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="157.667" cy="14.848" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="261.444" cy="28.257" r="0.805" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="223.281" cy="52.803" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M583.698,25.392c-0.342,-0.197 -0.78,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.341 0.08,-0.779 -0.262,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="330.57" cy="98.448" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="330.376" cy="79.267" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="365.972" cy="26.878" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="112.16" cy="59.167" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="800.966" cy="4.978" r="0.826" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="794.399" cy="127.828" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="771.687" cy="32.202" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="794.953" cy="26.108" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><path d="M44.17,26.599c0.342,-0.198 0.78,-0.08 0.977,0.262c0.198,0.341 0.08,0.779 -0.261,0.976c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.261,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="133.264" cy="33.817" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="97.667" cy="41.428" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="201.444" cy="28.019" r="0.805" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="163.281" cy="23.473" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M523.698,30.884c-0.342,0.197 -0.78,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.341 0.08,0.779 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="305.972" cy="29.398" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="769.852" cy="44.016" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="711.687" cy="24.074" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="734.953" cy="30.168" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><circle cx="717.719" cy="10.364" r="0.673" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="756.911" cy="16.319" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M454.676,37.115c0.698,0.403 1.592,0.163 1.995,-0.535c0.403,-0.698 0.164,-1.592 -0.534,-1.995c-0.698,-0.403 -1.592,-0.164 -1.995,0.534c-0.404,0.698 -0.164,1.592 0.534,1.996Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M465.701,47.253c0.342,0.197 0.78,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.779 -0.262,-0.977c-0.342,-0.197 -0.779,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M32.393,28.151c0.342,0.197 0.78,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.78 -0.262,-0.977c-0.341,-0.197 -0.779,-0.08 -0.976,0.262c-0.198,0.342 -0.08,0.779 0.261,0.977Z" style="fill:#fffeee;fill-opacity:0.69;"/><path d="M494.249,8.398c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.261c-0.198,0.342 -0.08,0.78 0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M699.212,25.017c0.342,0.197 0.78,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.779 -0.262,-0.977c-0.342,-0.197 -0.779,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M549.645,25.017c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.779 -0.262,-0.977c-0.342,-0.197 -0.78,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M472.652,7.069c0.442,0.255 1.009,0.103 1.265,-0.339c0.255,-0.443 0.103,-1.01 -0.339,-1.265c-0.443,-0.256 -1.01,-0.104 -1.265,0.339c-0.256,0.442 -0.104,1.009 0.339,1.265Z" style="fill:#fee;fill-opacity:0.69;"/><path d="M416.68,31.856c0.488,0.282 1.112,0.114 1.394,-0.373c0.281,-0.488 0.114,-1.112 -0.374,-1.393c-0.487,-0.282 -1.112,-0.115 -1.393,0.373c-0.281,0.487 -0.114,1.112 0.373,1.393Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M529.444,13.243c0.565,0.326 1.289,0.132 1.615,-0.433c0.326,-0.565 0.132,-1.289 -0.433,-1.615c-0.565,-0.326 -1.289,-0.133 -1.615,0.433c-0.326,0.565 -0.132,1.288 0.433,1.615Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M498.917,29.864c0.52,0.3 1.186,0.122 1.486,-0.398c0.301,-0.52 0.122,-1.186 -0.398,-1.486c-0.52,-0.3 -1.186,-0.122 -1.486,0.398c-0.3,0.52 -0.122,1.186 0.398,1.486Z" style="fill:#fff8e8;fill-opacity:0.69;"/><circle cx="573.265" cy="5.3" r="0.967" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="648.544" cy="38.618" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="638.738" cy="17.799" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="274.158" cy="3.264" r="1.069" style="fill:#fee;fill-opacity:0.69;"/><circle cx="213.142" cy="10.187" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M173.074,50.556c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.198 0.779,-0.08 0.976,0.262c0.198,0.341 0.08,0.779 -0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M323.074,50.556c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.198 0.779,-0.08 0.976,0.262c0.198,0.341 0.08,0.779 -0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M353.074,50.556c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.198 0.779,-0.08 0.976,0.262c0.198,0.341 0.08,0.779 -0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M383.074,50.556c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.198 0.779,-0.08 0.976,0.262c0.198,0.341 0.08,0.779 -0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="254.174" cy="44.157" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="263.98" cy="23.339" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="299.577" cy="15.727" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="195.559" cy="38.849" r="1.461" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="233.963" cy="33.683" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M37.775,12.928c0.342,-0.197 0.78,-0.08 0.977,0.262c0.197,0.342 0.08,0.779 -0.262,0.977c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="146.674" cy="49.327" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="126.868" cy="20.146" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="481.272" cy="27.758" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="735.084" cy="60.046" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M623.013,27.532c-0.698,0.403 -1.592,0.163 -1.995,-0.535c-0.403,-0.698 -0.164,-1.592 0.535,-1.995c0.698,-0.403 1.592,-0.164 1.995,0.535c0.403,0.698 0.163,1.592 -0.535,1.995Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M520.261,21.259c-0.698,0.403 -1.592,0.163 -1.995,-0.535c-0.403,-0.698 -0.164,-1.592 0.534,-1.995c0.698,-0.403 1.592,-0.164 1.995,0.535c0.404,0.698 0.164,1.592 -0.534,1.995Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M554.976,21.878c-0.52,0.3 -1.186,0.122 -1.486,-0.398c-0.3,-0.52 -0.122,-1.186 0.398,-1.486c0.52,-0.3 1.186,-0.122 1.486,0.398c0.301,0.52 0.122,1.186 -0.398,1.486Z" style="fill:#fff8e8;fill-opacity:0.69;"/><circle cx="591.184" cy="24.216" r="0.762" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="208.506" cy="36.92" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="183.086" cy="22.385" r="1.069" style="fill:#fee;fill-opacity:0.69;"/><circle cx="153.07" cy="32.998" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="280.376" cy="27.009" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="62.16" cy="47.109" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="260.57" cy="57.828" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="740.966" cy="51.298" r="0.826" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="801.399" cy="55.949" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="778.687" cy="80.323" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="801.953" cy="74.229" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><ellipse cx="726.231" cy="58.633" rx="0.737" ry="0.821" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="763.911" cy="64.439" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M462.155,64.919c0.575,0.333 1.312,0.135 1.644,-0.44c0.333,-0.576 0.135,-1.313 -0.44,-1.645c-0.576,-0.332 -1.313,-0.135 -1.645,0.441c-0.332,0.575 -0.135,1.312 0.441,1.644Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M454.7,52.358c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.341 0.08,-0.779 -0.262,-0.977c-0.342,-0.197 -0.779,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M469.393,136.271c0.342,0.198 0.78,0.081 0.977,-0.261c0.197,-0.342 0.08,-0.78 -0.262,-0.977c-0.341,-0.197 -0.779,-0.08 -0.976,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#fffeee;fill-opacity:0.69;"/><path d="M501.249,56.519c0.342,0.197 0.78,0.08 0.977,-0.262c0.198,-0.341 0.08,-0.779 -0.261,-0.976c-0.342,-0.198 -0.78,-0.081 -0.977,0.261c-0.198,0.342 -0.08,0.78 0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M706.212,73.138c0.342,0.197 0.78,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.78 -0.262,-0.977c-0.342,-0.197 -0.779,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.779 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M556.645,73.138c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.78 -0.262,-0.977c-0.342,-0.197 -0.78,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.779 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M729.58,36.383c0.698,0.403 1.592,0.163 1.995,-0.535c0.403,-0.698 0.164,-1.592 -0.534,-1.995c-0.698,-0.403 -1.592,-0.163 -1.995,0.535c-0.403,0.698 -0.164,1.592 0.534,1.995Z" style="fill:#fee;fill-opacity:0.69;"/><path d="M548.231,56.532c0.698,0.403 1.592,0.163 1.995,-0.535c0.403,-0.698 0.164,-1.592 -0.535,-1.995c-0.698,-0.403 -1.592,-0.164 -1.995,0.535c-0.403,0.698 -0.163,1.592 0.535,1.995Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M650.983,50.259c0.698,0.403 1.592,0.163 1.995,-0.535c0.403,-0.698 0.164,-1.592 -0.534,-1.995c-0.698,-0.403 -1.592,-0.164 -1.995,0.535c-0.403,0.698 -0.164,1.592 0.534,1.995Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M616.268,50.878c0.52,0.3 1.186,0.122 1.486,-0.398c0.3,-0.52 0.122,-1.186 -0.398,-1.486c-0.52,-0.3 -1.186,-0.122 -1.486,0.398c-0.301,0.52 -0.122,1.186 0.398,1.486Z" style="fill:#fff8e8;fill-opacity:0.69;"/><circle cx="580.06" cy="53.216" r="0.762" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="655.544" cy="86.738" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="645.738" cy="65.92" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="681.158" cy="31.385" r="1.069" style="fill:#fee;fill-opacity:0.69;"/><circle cx="610.142" cy="158.308" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M750.074,78.677c-0.342,0.198 -0.78,0.08 -0.977,-0.262c-0.198,-0.341 -0.08,-0.779 0.262,-0.976c0.341,-0.198 0.779,-0.08 0.976,0.261c0.198,0.342 0.08,0.78 -0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="651.174" cy="122.278" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="660.98" cy="71.459" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="696.577" cy="63.848" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="592.8" cy="77.257" r="0.805" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="630.963" cy="81.803" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M270.546,74.392c0.342,-0.197 0.78,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.341 -0.08,-0.779 0.262,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="533.674" cy="47.448" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="523.868" cy="128.267" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="488.272" cy="75.878" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="742.084" cy="108.167" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="53.278" cy="53.978" r="0.826" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="24.392" cy="61.26" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="59.845" cy="176.828" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="82.557" cy="81.202" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="59.291" cy="75.108" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><circle cx="13.635" cy="87.617" r="1.228" style="fill:#fee;fill-opacity:0.69;"/><circle cx="136.525" cy="59.364" r="0.673" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="97.333" cy="65.319" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M399.568,66.115c-0.698,0.403 -1.592,0.163 -1.995,-0.535c-0.403,-0.698 -0.164,-1.592 0.534,-1.995c0.699,-0.403 1.593,-0.164 1.996,0.534c0.403,0.698 0.163,1.592 -0.535,1.996Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M398.543,46.253c-0.342,0.197 -0.78,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.779 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M391.851,117.151c-0.342,0.197 -0.78,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.197 0.779,-0.08 0.976,0.262c0.198,0.342 0.081,0.779 -0.261,0.977Z" style="fill:#fffeee;fill-opacity:0.69;"/><path d="M359.995,57.398c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.261,-0.977c0.342,-0.198 0.78,-0.08 0.977,0.261c0.198,0.342 0.08,0.78 -0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M155.032,74.017c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.779 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M304.599,74.017c-0.341,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.779 0.262,-0.977c0.342,-0.197 0.78,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M381.592,56.069c-0.442,0.255 -1.009,0.103 -1.265,-0.339c-0.255,-0.443 -0.103,-1.01 0.339,-1.265c0.443,-0.256 1.01,-0.104 1.265,0.339c0.256,0.442 0.104,1.009 -0.339,1.265Z" style="fill:#fee;fill-opacity:0.69;"/><path d="M437.564,80.856c-0.488,0.282 -1.112,0.114 -1.393,-0.373c-0.282,-0.488 -0.115,-1.112 0.373,-1.393c0.487,-0.282 1.112,-0.115 1.393,0.373c0.282,0.487 0.114,1.112 -0.373,1.393Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M314.8,32.243c-0.565,0.326 -1.288,0.132 -1.615,-0.433c-0.326,-0.565 -0.132,-1.289 0.433,-1.615c0.565,-0.326 1.289,-0.133 1.615,0.433c0.326,0.565 0.132,1.288 -0.433,1.615Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M355.327,78.864c-0.52,0.3 -1.186,0.122 -1.486,-0.398c-0.3,-0.52 -0.122,-1.186 0.398,-1.486c0.52,-0.3 1.186,-0.122 1.486,0.398c0.3,0.52 0.122,1.186 -0.398,1.486Z" style="fill:#fff8e8;fill-opacity:0.69;"/><circle cx="280.979" cy="54.3" r="0.967" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="205.7" cy="87.618" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="215.506" cy="176.799" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="190.086" cy="52.264" r="1.069" style="fill:#fee;fill-opacity:0.69;"/><circle cx="251.102" cy="59.187" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M301.17,49.556c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M151.17,49.556c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M121.17,49.556c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M91.17,49.556c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="210.07" cy="93.157" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="200.264" cy="72.339" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="164.667" cy="64.727" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="268.685" cy="127.849" r="1.461" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="230.281" cy="82.683" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M426.469,61.928c-0.342,-0.197 -0.78,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.779 0.262,0.977c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.78 -0.262,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="327.57" cy="48.327" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="337.376" cy="69.146" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="372.972" cy="76.758" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="119.16" cy="109.046" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/></g><g id="Clouds"><path id="_-Curve-" serif:id="(Curve)" d="M610.291,177.316c-35.879,-0.428 -84.67,-0.691 -138.392,-0.689c-38.684,0.002 -74.811,0.141 -105.402,0.38c-49.14,-2.745 -80.877,-9.954 -80.877,-14.718c0,-1.333 2.655,0.335 7.294,-0.896c96.772,-0.175 171.302,-1.213 171.302,-2.464c0,-1.107 -59.462,-3.372 -140.106,-3.687c38.487,-2.059 102.543,-4.972 173.823,-4.972c11.996,0 23.761,0.07 35.216,0.206c20.76,-4.638 60.945,-2.784 107.07,-2.784c36.08,0 68.525,-0.075 90.882,2.983c32.491,0.899 72.142,-1.186 114.922,-0.379c38.68,0.729 74.805,1.273 105.395,1.613c49.101,3.673 80.599,8.516 80.54,13.279c-0.016,1.334 -2.504,2.58 -7.158,3.723c-96.763,-1.654 -171.297,-2.024 -171.312,-0.774c-0.013,1.108 58.473,3.15 139.105,4.989c-38.514,3.085 -101.653,4.38 -172.925,3.033c-11.995,-0.227 -23.757,-0.52 -35.209,-0.872c-20.815,4.245 -61.034,6.631 -107.154,5.759c-24.754,-0.468 -47.786,-1.809 -67.014,-3.73Z" style="fill:#af92cb;"/><path id="_-Curve-1" serif:id="(Curve)" d="M609.299,171.607c-35.88,-0.338 -84.67,-0.545 -138.392,-0.543c-38.684,0.001 -74.812,0.111 -105.402,0.299c-49.141,-2.166 -80.694,-5.519 -80.694,-9.279c0,-1.052 2.472,-2.073 7.111,-3.045c96.772,-0.137 171.302,-0.957 171.302,-1.944c-0.001,-0.874 -58.506,-1.614 -139.15,-1.862c38.471,-3.009 101.587,-4.973 172.867,-4.973c11.996,0 23.761,0.055 35.216,0.162c20.76,-3.66 60.945,-6.143 107.07,-6.143c36.08,0 68.525,1.519 90.882,3.933c32.491,0.709 72.142,1.432 114.922,2.069c38.68,0.575 74.805,1.005 105.395,1.272c49.101,2.9 80.598,6.722 80.54,10.482c-0.017,1.052 -2.505,2.036 -7.158,2.938c-96.763,-1.305 -171.297,-1.597 -171.312,-0.611c-0.014,0.875 58.473,2.486 139.104,3.938c-38.514,2.435 -101.653,3.457 -172.924,2.394c-11.995,-0.179 -23.758,-0.41 -35.21,-0.688c-20.814,3.35 -61.033,5.234 -107.153,4.545c-24.754,-0.369 -47.786,-1.428 -67.014,-2.944Z" style="fill:#6b649f;"/><path d="M684.234,222.269c-12.108,-1.642 -29.721,-2.832 -29.76,-5.218c-0.063,-3.861 34.226,-4.225 76.6,-3.504c42.375,0.721 75.9,-2.707 76.956,1.008c2.476,8.704 -12.549,8.552 -32.56,10.141c-12.403,-0.58 -28.24,0.216 -44.434,0.479c-16.193,0.263 -35.197,-1.331 -46.802,-2.906Z" style="fill:url(#_Linear4);"/><path d="M130.064,213.821c42.381,0 76.789,0.237 76.789,4.224c0,3.986 -14.408,4.223 -56.789,4.223c-42.38,0 -96.788,0.208 -96.788,-4.223c0,-4.431 34.408,-4.224 76.788,-4.224Z" style="fill:#a7847d;"/></g><g id="Mountains"><path d="M476.098,218.299l81.644,216.765l-205.408,0l123.764,-216.765Z" style="fill:#04102d;"/><path d="M476.098,218.299l21.823,203.477l81.177,-8.706l-103,-194.771Z" style="fill:#250849;"/><path d="M369.627,308.648l88.326,125.788l-205.407,0l117.081,-125.788Z" style="fill:#04102d;"/><path d="M326.11,338.332l68.193,96.732l-205.407,0l137.214,-96.732Z" style="fill:#04102d;"/><path d="M508.168,243.792l163.526,204.747l-256.643,0l93.117,-204.747Z" style="fill:#04102d;"/><path d="M508.168,245.355l63.395,75.115l-54.953,46.379l-8.442,-121.494Z" style="fill:#250849;"/><path d="M369.612,308.648l54.182,77.687l-58.981,41.135l4.799,-118.822Z" style="fill:#250849;"/><path d="M326.184,338.326l16.813,23.99l-16.887,11.835l0.074,-35.825Z" style="fill:#250849;"/><path d="M633.647,230.42l175.693,204.644l-351.387,0l175.694,-204.644Z" style="fill:#04102d;"/><path d="M633.647,230.42l101.573,245.129l86.041,-35.653l-187.614,-209.476Z" style="fill:#250849;"/><path d="M643.625,254.389c-0.57,0.219 -0.744,0.283 -1.862,0.819c-2.862,1.393 -6.074,3.204 -9.177,2.636c-6.182,-1.132 -10.808,-6.27 -16.675,-6.724l17.736,-20.7l9.978,23.969Z" style="fill:#655578;"/><path d="M654.153,253.404c-0.495,-0.027 -0.799,-0.017 -0.799,-0.017c-3.255,-0.486 -6.617,-0.192 -9.677,0.982l-0.052,0.02l-9.978,-23.969l20.506,22.984Z" style="fill:#9d779e;"/></g><g id="Buildings"><path d="M195.171,451.298l0,-292.145l-102.462,0l0,292.145l102.462,0Z" style="fill:url(#_Linear5);"/><path d="M289.755,451.298l0,-218.487l-57.232,0l0,218.487l57.232,0Z" style="fill:url(#_Linear6);"/><path d="M323.451,451.298l0,-123.585l-71.555,0l0,123.585l71.555,0Z" style="fill:url(#_Linear7);"/><path d="M207.557,451.298l0,-218.487l25.314,0l0,218.487l-25.314,0Z" style="fill:#130425;"/><path d="M92.709,451.298l0,-292.145l25.314,0l0,292.145l-25.314,0Z" style="fill:#282341;"/><path d="M323.451,451.298l0,-123.585l-16.692,0l0,123.585l16.692,0Z" style="fill:url(#_Linear8);"/><path d="M272.498,451.298l0,-95.771l-136.555,0l0,95.771l136.555,0Z" style="fill:url(#_Linear9);"/><path d="M85.122,451.298l0,-178.856l-97.675,0l0,178.856l97.675,0Z" style="fill:url(#_Linear10);"/><path d="M173.526,451.298l0,-95.771l-37.583,0l0,95.771l37.583,0Z" style="fill:#2e1232;"/><path d="M66.649,456.944l0,-184.502l-69.677,0l0,184.502l69.677,0Z" style="fill:url(#_Linear11);"/></g><rect x="-3.028" y="431.298" width="826.844" height="20.006" style="fill:#253141;"/><g id="Laptop"><path d="M606.064,273.603c0,-6.261 -5.076,-11.337 -11.337,-11.337c-37.536,0 -157.517,0 -195.054,0c-6.261,0 -11.337,5.076 -11.337,11.337c0,33.077 0,128.577 0,151.521c0,1.326 0.527,2.598 1.465,3.536c0.938,0.937 2.209,1.464 3.535,1.464c29.3,0 178.429,0 207.728,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-22.944 0,-118.444 0,-151.521Z" style="fill:#657390;"/><path d="M606.064,273.603c0,-6.261 -5.076,-11.337 -11.337,-11.337c-37.536,0 -157.517,0 -195.054,0c-6.261,0 -11.337,5.076 -11.337,11.337c0,33.077 0,128.577 0,151.521c0,1.326 0.527,2.598 1.465,3.536c0.938,0.937 2.209,1.464 3.535,1.464c29.3,0 178.429,0 207.728,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-22.944 0,-118.444 0,-151.521Z" style="fill:#657390;"/><path d="M599.193,275.905c0,-3.05 -2.476,-5.526 -5.526,-5.526l-193.063,0c-3.05,0 -5.526,2.476 -5.526,5.526l0,141.039c0,3.05 2.476,5.526 5.526,5.526l193.063,0c3.05,0 5.526,-2.476 5.526,-5.526l0,-141.039Z" style="fill:#f9d3d3;"/><path d="M655.04,427.228c0,-0.252 -0.205,-0.457 -0.457,-0.457c-13.334,0 -313.753,0 -313.753,0l0,4.975c0,2.761 2.239,5 5,5c36.953,0 267.257,0 304.21,0c2.761,0 5,-2.239 5,-5c0,-1.845 0,-3.687 0,-4.518Z" style="fill:url(#_Linear12);"/><circle id="Camera" cx="497.178" cy="267.001" r="1.238" style="fill-opacity:0.45;"/><circle id="Mic" cx="500.009" cy="267.001" r="0.527" style="fill-opacity:0.45;"/><circle id="Ambient-Light-" serif:id="Ambient Light?" cx="494.263" cy="267.001" r="0.527" style="fill:#102708;fill-opacity:0.45;"/><g id="Icon"><path d="M543.109,335.27l-18.005,-18.014l-4.857,4.857l15.576,15.585l-15.576,15.582l4.857,4.856l18.005,-18.007c0.649,-0.652 1.008,-1.516 1.008,-2.434c-0.004,-0.918 -0.359,-1.778 -1.008,-2.425" style="fill:#ccffd6;fill-rule:nonzero;"/><path d="M497.136,326.699c7.364,-7.356 19.316,-7.354 26.677,0.007c7.361,7.362 7.364,19.313 0.007,26.677l0.007,0.007l-26.684,26.684l-26.684,-26.684c-7.364,-7.363 -7.364,-19.32 0,-26.684c7.361,-7.361 19.313,-7.363 26.677,-0.007Z" style="fill:#c47dff;"/><path d="M473.797,339.323l-4.859,-4.857l-18.012,18.01c-0.647,0.646 -1.004,1.511 -1.001,2.428c0,0.918 0.354,1.781 1.001,2.428l18.012,18.012l4.859,-4.856l-15.583,-15.584l15.583,-15.581Z" style="fill:#ccffd6;fill-rule:nonzero;"/></g></g></g><defs><linearGradient id="_Linear2" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-8.64246e-14,451.564,-803.856,-1.43038e-13,398.9,-3.51255)"><stop offset="0" style="stop-color:#022d62;stop-opacity:1"/><stop offset="0.28" style="stop-color:#0040a0;stop-opacity:1"/><stop offset="0.68" style="stop-color:#4289dc;stop-opacity:1"/><stop offset="1" style="stop-color:#5f4eb8;stop-opacity:1"/></linearGradient><radialGradient id="_Radial3" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(647.316,0,0,459.814,842.486,270.379)"><stop offset="0" style="stop-color:#cfcfcf;stop-opacity:0.65"/><stop offset="1" style="stop-color:#fff552;stop-opacity:0"/></radialGradient><linearGradient id="_Linear4" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-0.538323,-17.3125,1.44013,-0.04478,749.812,228.864)"><stop offset="0" style="stop-color:#e59f77;stop-opacity:1"/><stop offset="0.47" style="stop-color:#a46075;stop-opacity:1"/><stop offset="1" style="stop-color:#914d74;stop-opacity:1"/></linearGradient><linearGradient id="_Linear5" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(31.4265,292.145,-292.145,31.4265,112.513,159.153)"><stop offset="0" style="stop-color:#74597f;stop-opacity:1"/><stop offset="1" style="stop-color:#571547;stop-opacity:1"/></linearGradient><linearGradient id="_Linear6" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(19.1616,218.487,-218.487,19.1616,241.977,232.811)"><stop offset="0" style="stop-color:#362272;stop-opacity:1"/><stop offset="1" style="stop-color:#571548;stop-opacity:1"/></linearGradient><linearGradient id="_Linear7" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(46.7869,123.585,-71.5547,27.0893,259.972,327.713)"><stop offset="0" style="stop-color:#000418;stop-opacity:1"/><stop offset="1" style="stop-color:#571548;stop-opacity:1"/></linearGradient><linearGradient id="_Linear8" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0,123.585,-123.585,0,315.105,327.713)"><stop offset="0" style="stop-color:#3a0843;stop-opacity:1"/><stop offset="1" style="stop-color:#9f5c6a;stop-opacity:1"/></linearGradient><linearGradient id="_Linear9" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(89.6564,47.8855,-47.8855,89.6564,162.618,355.527)"><stop offset="0" style="stop-color:#65436e;stop-opacity:1"/><stop offset="1" style="stop-color:#480445;stop-opacity:1"/></linearGradient><linearGradient id="_Linear10" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-7.19036,106.447,-106.447,-7.19036,77.8467,255.423)"><stop offset="0" style="stop-color:#9a76a4;stop-opacity:1"/><stop offset="1" style="stop-color:#654b8e;stop-opacity:1"/></linearGradient><linearGradient id="_Linear11" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(20.5602,1.9877e-06,-184.503,2.215e-07,11.2504,272.442)"><stop offset="0" style="stop-color:#223251;stop-opacity:1"/><stop offset="1" style="stop-color:#4f1557;stop-opacity:1"/></linearGradient><linearGradient id="_Linear12" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(314.21,0,0,9.97478,340.83,431.758)"><stop offset="0" style="stop-color:#a9abc1;stop-opacity:1"/><stop offset="0.11" style="stop-color:#65687d;stop-opacity:1"/><stop offset="0.5" style="stop-color:#c3c5d2;stop-opacity:1"/><stop offset="0.89" style="stop-color:#64677c;stop-opacity:1"/><stop offset="1" style="stop-color:#a4a7c2;stop-opacity:1"/></linearGradient></defs></svg>
assets/icons/lovelogo.svgnew file+1
@@ -0,0 +1 @@
1+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 101 72" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><rect id="Artboard1" x="0" y="0" width="100.651" height="71.235" style="fill:none;"/><g id="Icon"><path d="M96.414,22.222l-18.005,-18.014l-4.857,4.857l15.576,15.585l-15.576,15.582l4.857,4.856l18.005,-18.007c0.649,-0.652 1.007,-1.516 1.007,-2.434c-0.003,-0.918 -0.358,-1.778 -1.007,-2.425" style="fill:#ccffd6;fill-rule:nonzero;"/><path d="M50.441,13.651c7.364,-7.356 19.315,-7.354 26.677,0.007c7.361,7.362 7.363,19.313 0.007,26.677l0.007,0.007l-26.684,26.684l-26.684,-26.684c-7.364,-7.363 -7.364,-19.32 0,-26.684c7.361,-7.361 19.312,-7.363 26.677,-0.007Z" style="fill:#c47dff;"/><path d="M27.102,26.276l-4.859,-4.858l-18.012,18.01c-0.647,0.647 -1.004,1.511 -1.002,2.428c0,0.919 0.355,1.781 1.002,2.428l18.012,18.012l4.859,-4.856l-15.583,-15.584l15.583,-15.58Z" style="fill:#ccffd6;fill-rule:nonzero;"/></g></svg>
assets/map.svg → assets/icons/map.svgrenamed

The content is the same.

assets/mapflipped.svg → assets/icons/mapflipped.svgrenamed

The content is the same.

assets/menu.svg → assets/icons/menu.svgrenamed

The content is the same.

assets/pslogo.svg → assets/icons/pslogo.svgrenamed

The content is the same.

assets/icons/trianglelogo.svgnew file+1
@@ -0,0 +1 @@
1+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 39 34" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><path d="M0,33.021l12.425,-21.521l3.753,6.5l-8.672,15.021l-7.506,0Zm24.85,0l-11.571,0l5.785,-10.021l5.786,10.021Zm13.279,0l-7.506,0l-15.311,-26.521l3.752,-6.5l19.065,33.021Z"/></svg>
assets/images/landingpagedark.svgnew file+1
@@ -0,0 +1 @@
1+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 800 447" preserveAspectRatio="xMidYMax slice" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><rect id="Artboard1" x="0" y="0" width="800" height="446.374" style="fill:none;"/><clipPath id="_clip1"><rect x="0" y="0" width="800" height="446.374"/></clipPath><g clip-path="url(#_clip1)"><g id="Background"><path d="M800.828,448.051l0,-451.564l-803.856,0l0,451.564l803.856,0Z" style="fill:url(#_Linear2);"/><ellipse cx="174.599" cy="310.24" rx="330.479" ry="252.189" style="fill:url(#_Radial3);"/></g><g id="Stars"><circle cx="362.644" cy="4.733" r="1.461" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="334.392" cy="11.38" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="369.845" cy="6.949" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="72.557" cy="31.323" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="49.291" cy="25.229" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><circle cx="403.867" cy="17.97" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><ellipse cx="125.013" cy="9.633" rx="0.737" ry="0.821" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="87.333" cy="15.439" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M709.089,15.919c-0.575,0.333 -1.312,0.135 -1.644,-0.44c-0.333,-0.576 -0.135,-1.313 0.44,-1.645c0.576,-0.332 1.313,-0.135 1.645,0.441c0.332,0.575 0.135,1.312 -0.441,1.644Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M716.544,3.358c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.341 -0.08,-0.779 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M701.851,87.271c-0.342,0.198 -0.78,0.081 -0.977,-0.261c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.197 0.779,-0.08 0.976,0.262c0.198,0.341 0.081,0.779 -0.261,0.976Z" style="fill:#fffeee;fill-opacity:0.69;"/><path d="M669.995,7.519c-0.342,0.197 -0.78,0.08 -0.977,-0.262c-0.198,-0.341 -0.08,-0.779 0.261,-0.976c0.342,-0.198 0.78,-0.081 0.977,0.261c0.198,0.342 0.08,0.78 -0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M465.032,24.138c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.342 0.08,0.779 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M614.599,24.138c-0.341,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.342,-0.197 0.78,-0.08 0.977,0.262c0.197,0.342 0.08,0.779 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M691.664,7.383c-0.698,0.403 -1.592,0.163 -1.995,-0.535c-0.403,-0.698 -0.164,-1.592 0.534,-1.995c0.698,-0.403 1.592,-0.163 1.996,0.535c0.403,0.698 0.163,1.592 -0.535,1.995Z" style="fill:#fee;fill-opacity:0.69;"/><circle cx="198.7" cy="7.738" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="244.102" cy="79.308" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M104.17,29.677c0.342,0.198 0.78,0.08 0.977,-0.262c0.198,-0.341 0.08,-0.779 -0.261,-0.976c-0.342,-0.198 -0.78,-0.08 -0.977,0.261c-0.198,0.342 -0.08,0.78 0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="203.07" cy="73.278" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="193.264" cy="22.459" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="157.667" cy="14.848" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="261.444" cy="28.257" r="0.805" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="223.281" cy="52.803" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M583.698,25.392c-0.342,-0.197 -0.78,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.341 0.08,-0.779 -0.262,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="330.57" cy="98.448" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="330.376" cy="79.267" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="365.972" cy="26.878" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="112.16" cy="59.167" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="800.966" cy="4.978" r="0.826" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="794.399" cy="127.828" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="771.687" cy="32.202" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="794.953" cy="26.108" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><path d="M44.17,26.599c0.342,-0.198 0.78,-0.08 0.977,0.262c0.198,0.341 0.08,0.779 -0.261,0.976c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.261,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="133.264" cy="33.817" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="97.667" cy="41.428" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="201.444" cy="28.019" r="0.805" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="163.281" cy="23.473" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M523.698,30.884c-0.342,0.197 -0.78,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.341 0.08,0.779 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="305.972" cy="29.398" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="769.852" cy="44.016" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="711.687" cy="24.074" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="734.953" cy="30.168" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><circle cx="717.719" cy="10.364" r="0.673" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="756.911" cy="16.319" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M454.676,37.115c0.698,0.403 1.592,0.163 1.995,-0.535c0.403,-0.698 0.164,-1.592 -0.534,-1.995c-0.698,-0.403 -1.592,-0.164 -1.995,0.534c-0.404,0.698 -0.164,1.592 0.534,1.996Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M465.701,47.253c0.342,0.197 0.78,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.779 -0.262,-0.977c-0.342,-0.197 -0.779,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M32.393,28.151c0.342,0.197 0.78,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.78 -0.262,-0.977c-0.341,-0.197 -0.779,-0.08 -0.976,0.262c-0.198,0.342 -0.08,0.779 0.261,0.977Z" style="fill:#fffeee;fill-opacity:0.69;"/><path d="M494.249,8.398c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.261c-0.198,0.342 -0.08,0.78 0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M699.212,25.017c0.342,0.197 0.78,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.779 -0.262,-0.977c-0.342,-0.197 -0.779,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M549.645,25.017c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.779 -0.262,-0.977c-0.342,-0.197 -0.78,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M472.652,7.069c0.442,0.255 1.009,0.103 1.265,-0.339c0.255,-0.443 0.103,-1.01 -0.339,-1.265c-0.443,-0.256 -1.01,-0.104 -1.265,0.339c-0.256,0.442 -0.104,1.009 0.339,1.265Z" style="fill:#fee;fill-opacity:0.69;"/><path d="M416.68,31.856c0.488,0.282 1.112,0.114 1.394,-0.373c0.281,-0.488 0.114,-1.112 -0.374,-1.393c-0.487,-0.282 -1.112,-0.115 -1.393,0.373c-0.281,0.487 -0.114,1.112 0.373,1.393Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M529.444,13.243c0.565,0.326 1.289,0.132 1.615,-0.433c0.326,-0.565 0.132,-1.289 -0.433,-1.615c-0.565,-0.326 -1.289,-0.133 -1.615,0.433c-0.326,0.565 -0.132,1.288 0.433,1.615Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M498.917,29.864c0.52,0.3 1.186,0.122 1.486,-0.398c0.301,-0.52 0.122,-1.186 -0.398,-1.486c-0.52,-0.3 -1.186,-0.122 -1.486,0.398c-0.3,0.52 -0.122,1.186 0.398,1.486Z" style="fill:#fff8e8;fill-opacity:0.69;"/><circle cx="573.265" cy="5.3" r="0.967" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="648.544" cy="38.618" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="638.738" cy="17.799" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="274.158" cy="3.264" r="1.069" style="fill:#fee;fill-opacity:0.69;"/><circle cx="213.142" cy="10.187" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M173.074,50.556c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.198 0.779,-0.08 0.976,0.262c0.198,0.341 0.08,0.779 -0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M323.074,50.556c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.198 0.779,-0.08 0.976,0.262c0.198,0.341 0.08,0.779 -0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M353.074,50.556c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.198 0.779,-0.08 0.976,0.262c0.198,0.341 0.08,0.779 -0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M383.074,50.556c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.198 0.779,-0.08 0.976,0.262c0.198,0.341 0.08,0.779 -0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="254.174" cy="44.157" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="263.98" cy="23.339" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="299.577" cy="15.727" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="195.559" cy="38.849" r="1.461" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="233.963" cy="33.683" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M37.775,12.928c0.342,-0.197 0.78,-0.08 0.977,0.262c0.197,0.342 0.08,0.779 -0.262,0.977c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="146.674" cy="49.327" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="126.868" cy="20.146" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="481.272" cy="27.758" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="735.084" cy="60.046" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M623.013,27.532c-0.698,0.403 -1.592,0.163 -1.995,-0.535c-0.403,-0.698 -0.164,-1.592 0.535,-1.995c0.698,-0.403 1.592,-0.164 1.995,0.535c0.403,0.698 0.163,1.592 -0.535,1.995Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M520.261,21.259c-0.698,0.403 -1.592,0.163 -1.995,-0.535c-0.403,-0.698 -0.164,-1.592 0.534,-1.995c0.698,-0.403 1.592,-0.164 1.995,0.535c0.404,0.698 0.164,1.592 -0.534,1.995Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M554.976,21.878c-0.52,0.3 -1.186,0.122 -1.486,-0.398c-0.3,-0.52 -0.122,-1.186 0.398,-1.486c0.52,-0.3 1.186,-0.122 1.486,0.398c0.301,0.52 0.122,1.186 -0.398,1.486Z" style="fill:#fff8e8;fill-opacity:0.69;"/><circle cx="591.184" cy="24.216" r="0.762" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="208.506" cy="36.92" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="183.086" cy="22.385" r="1.069" style="fill:#fee;fill-opacity:0.69;"/><circle cx="153.07" cy="32.998" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="280.376" cy="27.009" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="62.16" cy="47.109" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="260.57" cy="57.828" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="740.966" cy="51.298" r="0.826" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="801.399" cy="55.949" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="778.687" cy="80.323" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="801.953" cy="74.229" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><ellipse cx="726.231" cy="58.633" rx="0.737" ry="0.821" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="763.911" cy="64.439" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M462.155,64.919c0.575,0.333 1.312,0.135 1.644,-0.44c0.333,-0.576 0.135,-1.313 -0.44,-1.645c-0.576,-0.332 -1.313,-0.135 -1.645,0.441c-0.332,0.575 -0.135,1.312 0.441,1.644Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M454.7,52.358c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.341 0.08,-0.779 -0.262,-0.977c-0.342,-0.197 -0.779,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M469.393,136.271c0.342,0.198 0.78,0.081 0.977,-0.261c0.197,-0.342 0.08,-0.78 -0.262,-0.977c-0.341,-0.197 -0.779,-0.08 -0.976,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#fffeee;fill-opacity:0.69;"/><path d="M501.249,56.519c0.342,0.197 0.78,0.08 0.977,-0.262c0.198,-0.341 0.08,-0.779 -0.261,-0.976c-0.342,-0.198 -0.78,-0.081 -0.977,0.261c-0.198,0.342 -0.08,0.78 0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M706.212,73.138c0.342,0.197 0.78,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.78 -0.262,-0.977c-0.342,-0.197 -0.779,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.779 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M556.645,73.138c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.78 -0.262,-0.977c-0.342,-0.197 -0.78,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.779 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M729.58,36.383c0.698,0.403 1.592,0.163 1.995,-0.535c0.403,-0.698 0.164,-1.592 -0.534,-1.995c-0.698,-0.403 -1.592,-0.163 -1.995,0.535c-0.403,0.698 -0.164,1.592 0.534,1.995Z" style="fill:#fee;fill-opacity:0.69;"/><path d="M548.231,56.532c0.698,0.403 1.592,0.163 1.995,-0.535c0.403,-0.698 0.164,-1.592 -0.535,-1.995c-0.698,-0.403 -1.592,-0.164 -1.995,0.535c-0.403,0.698 -0.163,1.592 0.535,1.995Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M650.983,50.259c0.698,0.403 1.592,0.163 1.995,-0.535c0.403,-0.698 0.164,-1.592 -0.534,-1.995c-0.698,-0.403 -1.592,-0.164 -1.995,0.535c-0.403,0.698 -0.164,1.592 0.534,1.995Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M616.268,50.878c0.52,0.3 1.186,0.122 1.486,-0.398c0.3,-0.52 0.122,-1.186 -0.398,-1.486c-0.52,-0.3 -1.186,-0.122 -1.486,0.398c-0.301,0.52 -0.122,1.186 0.398,1.486Z" style="fill:#fff8e8;fill-opacity:0.69;"/><circle cx="580.06" cy="53.216" r="0.762" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="655.544" cy="86.738" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="645.738" cy="65.92" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="681.158" cy="31.385" r="1.069" style="fill:#fee;fill-opacity:0.69;"/><circle cx="610.142" cy="158.308" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M750.074,78.677c-0.342,0.198 -0.78,0.08 -0.977,-0.262c-0.198,-0.341 -0.08,-0.779 0.262,-0.976c0.341,-0.198 0.779,-0.08 0.976,0.261c0.198,0.342 0.08,0.78 -0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="651.174" cy="122.278" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="660.98" cy="71.459" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="696.577" cy="63.848" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="592.8" cy="77.257" r="0.805" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="630.963" cy="81.803" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M270.546,74.392c0.342,-0.197 0.78,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.341 -0.08,-0.779 0.262,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="533.674" cy="47.448" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="523.868" cy="128.267" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="488.272" cy="75.878" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="742.084" cy="108.167" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="53.278" cy="53.978" r="0.826" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="24.392" cy="61.26" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="59.845" cy="176.828" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="82.557" cy="81.202" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="59.291" cy="75.108" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><circle cx="13.635" cy="87.617" r="1.228" style="fill:#fee;fill-opacity:0.69;"/><circle cx="136.525" cy="59.364" r="0.673" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="97.333" cy="65.319" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M399.568,66.115c-0.698,0.403 -1.592,0.163 -1.995,-0.535c-0.403,-0.698 -0.164,-1.592 0.534,-1.995c0.699,-0.403 1.593,-0.164 1.996,0.534c0.403,0.698 0.163,1.592 -0.535,1.996Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M398.543,46.253c-0.342,0.197 -0.78,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.779 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M391.851,117.151c-0.342,0.197 -0.78,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.197 0.779,-0.08 0.976,0.262c0.198,0.342 0.081,0.779 -0.261,0.977Z" style="fill:#fffeee;fill-opacity:0.69;"/><path d="M359.995,57.398c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.261,-0.977c0.342,-0.198 0.78,-0.08 0.977,0.261c0.198,0.342 0.08,0.78 -0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M155.032,74.017c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.779 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M304.599,74.017c-0.341,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.779 0.262,-0.977c0.342,-0.197 0.78,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M381.592,56.069c-0.442,0.255 -1.009,0.103 -1.265,-0.339c-0.255,-0.443 -0.103,-1.01 0.339,-1.265c0.443,-0.256 1.01,-0.104 1.265,0.339c0.256,0.442 0.104,1.009 -0.339,1.265Z" style="fill:#fee;fill-opacity:0.69;"/><path d="M437.564,80.856c-0.488,0.282 -1.112,0.114 -1.393,-0.373c-0.282,-0.488 -0.115,-1.112 0.373,-1.393c0.487,-0.282 1.112,-0.115 1.393,0.373c0.282,0.487 0.114,1.112 -0.373,1.393Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M314.8,32.243c-0.565,0.326 -1.288,0.132 -1.615,-0.433c-0.326,-0.565 -0.132,-1.289 0.433,-1.615c0.565,-0.326 1.289,-0.133 1.615,0.433c0.326,0.565 0.132,1.288 -0.433,1.615Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M355.327,78.864c-0.52,0.3 -1.186,0.122 -1.486,-0.398c-0.3,-0.52 -0.122,-1.186 0.398,-1.486c0.52,-0.3 1.186,-0.122 1.486,0.398c0.3,0.52 0.122,1.186 -0.398,1.486Z" style="fill:#fff8e8;fill-opacity:0.69;"/><circle cx="280.979" cy="54.3" r="0.967" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="205.7" cy="87.618" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="215.506" cy="176.799" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="190.086" cy="52.264" r="1.069" style="fill:#fee;fill-opacity:0.69;"/><circle cx="251.102" cy="59.187" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M301.17,49.556c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M151.17,49.556c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M121.17,49.556c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M91.17,49.556c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="210.07" cy="93.157" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="200.264" cy="72.339" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="164.667" cy="64.727" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="268.685" cy="127.849" r="1.461" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="230.281" cy="82.683" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M426.469,61.928c-0.342,-0.197 -0.78,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.779 0.262,0.977c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.78 -0.262,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="327.57" cy="48.327" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="337.376" cy="69.146" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="372.972" cy="76.758" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="119.16" cy="109.046" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/></g><g id="Clouds"><path id="_-Curve-" serif:id="(Curve)" d="M610.291,177.316c-35.879,-0.428 -84.67,-0.691 -138.392,-0.689c-38.684,0.002 -74.811,0.141 -105.402,0.38c-49.14,-2.745 -80.877,-9.954 -80.877,-14.718c0,-1.333 2.655,0.335 7.294,-0.896c96.772,-0.175 171.302,-1.213 171.302,-2.464c0,-1.107 -59.462,-3.372 -140.106,-3.687c38.487,-2.059 102.543,-4.972 173.823,-4.972c11.996,0 23.761,0.07 35.216,0.206c20.76,-4.638 60.945,-2.784 107.07,-2.784c36.08,0 68.525,-0.075 90.882,2.983c32.491,0.899 72.142,-1.186 114.922,-0.379c38.68,0.729 74.805,1.273 105.395,1.613c49.101,3.673 80.599,8.516 80.54,13.279c-0.016,1.334 -2.504,2.58 -7.158,3.723c-96.763,-1.654 -171.297,-2.024 -171.312,-0.774c-0.013,1.108 58.473,3.15 139.105,4.989c-38.514,3.085 -101.653,4.38 -172.925,3.033c-11.995,-0.227 -23.757,-0.52 -35.209,-0.872c-20.815,4.245 -61.034,6.631 -107.154,5.759c-24.754,-0.468 -47.786,-1.809 -67.014,-3.73Z" style="fill:#240c3c;"/><path id="_-Curve-1" serif:id="(Curve)" d="M609.299,171.607c-35.88,-0.338 -84.67,-0.545 -138.392,-0.543c-38.684,0.001 -74.812,0.111 -105.402,0.299c-49.141,-2.166 -80.694,-5.519 -80.694,-9.279c0,-1.052 2.472,-2.073 7.111,-3.045c96.772,-0.137 171.302,-0.957 171.302,-1.944c-0.001,-0.874 -58.506,-1.614 -139.15,-1.862c38.471,-3.009 101.587,-4.973 172.867,-4.973c11.996,0 23.761,0.055 35.216,0.162c20.76,-3.66 60.945,-6.143 107.07,-6.143c36.08,0 68.525,1.519 90.882,3.933c32.491,0.709 72.142,1.432 114.922,2.069c38.68,0.575 74.805,1.005 105.395,1.272c49.101,2.9 80.598,6.722 80.54,10.482c-0.017,1.052 -2.505,2.036 -7.158,2.938c-96.763,-1.305 -171.297,-1.597 -171.312,-0.611c-0.014,0.875 58.473,2.486 139.104,3.938c-38.514,2.435 -101.653,3.457 -172.924,2.394c-11.995,-0.179 -23.758,-0.41 -35.21,-0.688c-20.814,3.35 -61.033,5.234 -107.153,4.545c-24.754,-0.369 -47.786,-1.428 -67.014,-2.944Z" style="fill:#120b38;"/><path d="M684.234,222.269c-12.108,-1.642 -29.721,-2.832 -29.76,-5.218c-0.063,-3.861 34.226,-4.225 76.6,-3.504c42.375,0.721 75.9,-2.707 76.956,1.008c2.476,8.704 -12.549,8.552 -32.56,10.141c-12.403,-0.58 -28.24,0.216 -44.434,0.479c-16.193,0.263 -35.197,-1.331 -46.802,-2.906Z" style="fill:url(#_Linear4);"/><path d="M130.064,213.821c42.381,0 76.789,0.237 76.789,4.224c0,3.986 -14.408,4.223 -56.789,4.223c-42.38,0 -96.788,0.208 -96.788,-4.223c0,-4.431 34.408,-4.224 76.788,-4.224Z" style="fill:#a7847d;"/></g><g id="Mountains"><path d="M476.098,218.299l81.644,216.765l-205.408,0l123.764,-216.765Z" style="fill:#04102d;"/><path d="M476.098,218.299l21.823,203.477l81.177,-8.706l-103,-194.771Z" style="fill:#250849;"/><path d="M369.627,308.648l88.326,125.788l-205.407,0l117.081,-125.788Z" style="fill:#04102d;"/><path d="M326.11,338.332l68.193,96.732l-205.407,0l137.214,-96.732Z" style="fill:#04102d;"/><path d="M508.168,243.792l163.526,204.747l-256.643,0l93.117,-204.747Z" style="fill:#04102d;"/><path d="M508.168,245.355l63.395,75.115l-54.953,46.379l-8.442,-121.494Z" style="fill:#250849;"/><path d="M369.612,308.648l54.182,77.687l-58.981,41.135l4.799,-118.822Z" style="fill:#250849;"/><path d="M326.184,338.326l16.813,23.99l-16.887,11.835l0.074,-35.825Z" style="fill:#250849;"/><path d="M633.647,230.42l175.693,204.644l-351.387,0l175.694,-204.644Z" style="fill:#04102d;"/><path d="M633.647,230.42l101.573,245.129l86.041,-35.653l-187.614,-209.476Z" style="fill:#250849;"/><path d="M643.625,254.389c-0.57,0.219 -0.744,0.283 -1.862,0.819c-2.862,1.393 -6.074,3.204 -9.177,2.636c-6.182,-1.132 -10.808,-6.27 -16.675,-6.724l17.736,-20.7l9.978,23.969Z" style="fill:#655578;"/><path d="M654.153,253.404c-0.495,-0.027 -0.799,-0.017 -0.799,-0.017c-3.255,-0.486 -6.617,-0.192 -9.677,0.982l-0.052,0.02l-9.978,-23.969l20.506,22.984Z" style="fill:#9d779e;"/></g><g id="Buildings"><path d="M195.171,451.298l0,-292.145l-102.462,0l0,292.145l102.462,0Z" style="fill:url(#_Linear5);"/><path d="M289.755,451.298l0,-218.487l-57.232,0l0,218.487l57.232,0Z" style="fill:url(#_Linear6);"/><path d="M323.451,451.298l0,-123.585l-71.555,0l0,123.585l71.555,0Z" style="fill:url(#_Linear7);"/><path d="M207.557,451.298l0,-218.487l25.314,0l0,218.487l-25.314,0Z" style="fill:#130425;"/><path d="M92.709,451.298l0,-292.145l25.314,0l0,292.145l-25.314,0Z" style="fill:#130425;"/><path d="M323.451,451.298l0,-123.585l-16.692,0l0,123.585l16.692,0Z" style="fill:url(#_Linear8);"/><path d="M272.498,451.298l0,-95.771l-136.555,0l0,95.771l136.555,0Z" style="fill:url(#_Linear9);"/><path d="M85.122,451.298l0,-178.856l-97.675,0l0,178.856l97.675,0Z" style="fill:url(#_Linear10);"/><path d="M173.526,451.298l0,-95.771l-37.583,0l0,95.771l37.583,0Z" style="fill:#2e1232;"/><path d="M66.649,456.944l0,-184.502l-69.677,0l0,184.502l69.677,0Z" style="fill:url(#_Linear11);"/></g><rect x="-3.028" y="431.298" width="826.844" height="20.006" style="fill:#253141;"/><g id="Laptop"><path d="M606.064,273.603c0,-6.261 -5.076,-11.337 -11.337,-11.337c-37.536,0 -157.517,0 -195.054,0c-6.261,0 -11.337,5.076 -11.337,11.337c0,33.077 0,128.577 0,151.521c0,1.326 0.527,2.598 1.465,3.536c0.938,0.937 2.209,1.464 3.535,1.464c29.3,0 178.429,0 207.728,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-22.944 0,-118.444 0,-151.521Z" style="fill:#657390;"/><path d="M606.064,273.603c0,-6.261 -5.076,-11.337 -11.337,-11.337c-37.536,0 -157.517,0 -195.054,0c-6.261,0 -11.337,5.076 -11.337,11.337c0,33.077 0,128.577 0,151.521c0,1.326 0.527,2.598 1.465,3.536c0.938,0.937 2.209,1.464 3.535,1.464c29.3,0 178.429,0 207.728,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-22.944 0,-118.444 0,-151.521Z" style="fill:#657390;"/><path d="M599.193,275.905c0,-3.05 -2.476,-5.526 -5.526,-5.526l-193.063,0c-3.05,0 -5.526,2.476 -5.526,5.526l0,141.039c0,3.05 2.476,5.526 5.526,5.526l193.063,0c3.05,0 5.526,-2.476 5.526,-5.526l0,-141.039Z" style="fill:#130c2b;"/><path d="M655.04,427.228c0,-0.252 -0.205,-0.457 -0.457,-0.457c-13.334,0 -313.753,0 -313.753,0l0,4.975c0,2.761 2.239,5 5,5c36.953,0 267.257,0 304.21,0c2.761,0 5,-2.239 5,-5c0,-1.845 0,-3.687 0,-4.518Z" style="fill:url(#_Linear12);"/><circle id="Camera" cx="497.178" cy="267.001" r="1.238" style="fill-opacity:0.45;"/><circle id="Mic" cx="500.009" cy="267.001" r="0.527" style="fill-opacity:0.45;"/><circle id="Ambient-Light-" serif:id="Ambient Light?" cx="494.263" cy="267.001" r="0.527" style="fill:#102708;fill-opacity:0.45;"/><g id="Icon"><path d="M543.109,335.27l-18.005,-18.014l-4.857,4.857l15.576,15.585l-15.576,15.582l4.857,4.856l18.005,-18.007c0.649,-0.652 1.008,-1.516 1.008,-2.434c-0.004,-0.918 -0.359,-1.778 -1.008,-2.425" style="fill:#ccffd6;fill-rule:nonzero;"/><path d="M497.136,326.699c7.364,-7.356 19.316,-7.354 26.677,0.007c7.361,7.362 7.364,19.313 0.007,26.677l0.007,0.007l-26.684,26.684l-26.684,-26.684c-7.364,-7.363 -7.364,-19.32 0,-26.684c7.361,-7.361 19.313,-7.363 26.677,-0.007Z" style="fill:#c47dff;"/><path d="M473.797,339.323l-4.859,-4.857l-18.012,18.01c-0.647,0.646 -1.004,1.511 -1.001,2.428c0,0.918 0.354,1.781 1.001,2.428l18.012,18.012l4.859,-4.856l-15.583,-15.584l15.583,-15.581Z" style="fill:#ccffd6;fill-rule:nonzero;"/></g></g></g><defs><linearGradient id="_Linear2" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-8.64246e-14,451.564,-803.856,-1.43038e-13,398.9,-3.51255)"><stop offset="0" style="stop-color:#000434;stop-opacity:1"/><stop offset="0.28" style="stop-color:#171043;stop-opacity:1"/><stop offset="0.68" style="stop-color:#573774;stop-opacity:1"/><stop offset="1" style="stop-color:#b8734e;stop-opacity:1"/></linearGradient><radialGradient id="_Radial3" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(330.479,0,0,252.189,174.599,310.24)"><stop offset="0" style="stop-color:#f60;stop-opacity:0.3"/><stop offset="1" style="stop-color:#fff552;stop-opacity:0"/></radialGradient><linearGradient id="_Linear4" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-0.538323,-17.3125,1.44013,-0.04478,749.812,228.864)"><stop offset="0" style="stop-color:#e59f77;stop-opacity:1"/><stop offset="0.47" style="stop-color:#a46075;stop-opacity:1"/><stop offset="1" style="stop-color:#914d74;stop-opacity:1"/></linearGradient><linearGradient id="_Linear5" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(31.4265,292.145,-292.145,31.4265,112.513,159.153)"><stop offset="0" style="stop-color:#08001b;stop-opacity:1"/><stop offset="1" style="stop-color:#571547;stop-opacity:1"/></linearGradient><linearGradient id="_Linear6" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(19.1616,218.487,-218.487,19.1616,241.977,232.811)"><stop offset="0" style="stop-color:#000418;stop-opacity:1"/><stop offset="1" style="stop-color:#571548;stop-opacity:1"/></linearGradient><linearGradient id="_Linear7" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(46.7869,123.585,-71.5547,27.0893,259.972,327.713)"><stop offset="0" style="stop-color:#000418;stop-opacity:1"/><stop offset="1" style="stop-color:#571548;stop-opacity:1"/></linearGradient><linearGradient id="_Linear8" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0,123.585,-123.585,0,315.105,327.713)"><stop offset="0" style="stop-color:#3a0843;stop-opacity:1"/><stop offset="1" style="stop-color:#9f5c6a;stop-opacity:1"/></linearGradient><linearGradient id="_Linear9" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(89.6564,47.8855,-47.8855,89.6564,162.618,355.527)"><stop offset="0" style="stop-color:#2c1d2f;stop-opacity:1"/><stop offset="1" style="stop-color:#480445;stop-opacity:1"/></linearGradient><linearGradient id="_Linear10" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-7.19036,106.447,-106.447,-7.19036,77.8467,255.423)"><stop offset="0" style="stop-color:#2c1d2f;stop-opacity:1"/><stop offset="1" style="stop-color:#480445;stop-opacity:1"/></linearGradient><linearGradient id="_Linear11" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(20.5602,1.9877e-06,-184.503,2.215e-07,11.2504,272.442)"><stop offset="0" style="stop-color:#000624;stop-opacity:1"/><stop offset="1" style="stop-color:#4f1557;stop-opacity:1"/></linearGradient><linearGradient id="_Linear12" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(314.21,0,0,9.97478,340.83,431.758)"><stop offset="0" style="stop-color:#a9abc1;stop-opacity:1"/><stop offset="0.11" style="stop-color:#65687d;stop-opacity:1"/><stop offset="0.5" style="stop-color:#c3c5d2;stop-opacity:1"/><stop offset="0.89" style="stop-color:#64677c;stop-opacity:1"/><stop offset="1" style="stop-color:#a4a7c2;stop-opacity:1"/></linearGradient></defs></svg>
assets/images/landingpagelight.svgnew file+1
@@ -0,0 +1 @@
1+<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 800 447" preserveAspectRatio="xMidYMax slice" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><rect id="Artboard1" x="0" y="0" width="800" height="446.374" style="fill:none;"/><clipPath id="_clip1"><rect x="0" y="0" width="800" height="446.374"/></clipPath><g clip-path="url(#_clip1)"><g id="Background"><path d="M800.828,448.051l0,-451.564l-803.856,0l0,451.564l803.856,0Z" style="fill:url(#_Linear2);"/><ellipse cx="720.558" cy="355.142" rx="647.316" ry="309.935" style="fill:url(#_Radial3);"/></g><g id="Stars" opacity="0.15"><circle cx="362.644" cy="4.733" r="1.461" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="334.392" cy="11.38" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="369.845" cy="6.949" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="49.291" cy="25.229" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><circle cx="403.867" cy="17.97" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><ellipse cx="125.013" cy="9.633" rx="0.737" ry="0.821" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="87.333" cy="15.439" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M709.089,15.919c-0.575,0.333 -1.312,0.135 -1.644,-0.44c-0.333,-0.576 -0.135,-1.313 0.44,-1.645c0.576,-0.332 1.313,-0.135 1.645,0.441c0.332,0.575 0.135,1.312 -0.441,1.644Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M716.544,3.358c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.341 -0.08,-0.779 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M701.851,87.271c-0.342,0.198 -0.78,0.081 -0.977,-0.261c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.197 0.779,-0.08 0.976,0.262c0.198,0.341 0.081,0.779 -0.261,0.976Z" style="fill:#fffeee;fill-opacity:0.69;"/><path d="M669.995,7.519c-0.342,0.197 -0.78,0.08 -0.977,-0.262c-0.198,-0.341 -0.08,-0.779 0.261,-0.976c0.342,-0.198 0.78,-0.081 0.977,0.261c0.198,0.342 0.08,0.78 -0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M465.032,24.138c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.342 0.08,0.779 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M614.599,24.138c-0.341,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.342,-0.197 0.78,-0.08 0.977,0.262c0.197,0.342 0.08,0.779 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M691.664,7.383c-0.698,0.403 -1.592,0.163 -1.995,-0.535c-0.403,-0.698 -0.164,-1.592 0.534,-1.995c0.698,-0.403 1.592,-0.163 1.996,0.535c0.403,0.698 0.163,1.592 -0.535,1.995Z" style="fill:#fee;fill-opacity:0.69;"/><circle cx="198.7" cy="7.738" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="244.102" cy="79.308" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M104.17,29.677c0.342,0.198 0.78,0.08 0.977,-0.262c0.198,-0.341 0.08,-0.779 -0.261,-0.976c-0.342,-0.198 -0.78,-0.08 -0.977,0.261c-0.198,0.342 -0.08,0.78 0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="203.07" cy="73.278" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="193.264" cy="22.459" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="157.667" cy="14.848" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="261.444" cy="28.257" r="0.805" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="223.281" cy="52.803" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M583.698,25.392c-0.342,-0.197 -0.78,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.341 0.08,-0.779 -0.262,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="330.57" cy="98.448" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="330.376" cy="79.267" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="365.972" cy="26.878" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="112.16" cy="59.167" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="800.966" cy="4.978" r="0.826" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="794.399" cy="127.828" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="771.687" cy="32.202" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="794.953" cy="26.108" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><path d="M44.17,26.599c0.342,-0.198 0.78,-0.08 0.977,0.262c0.198,0.341 0.08,0.779 -0.261,0.976c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.261,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="133.264" cy="33.817" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="97.667" cy="41.428" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="201.444" cy="28.019" r="0.805" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="163.281" cy="23.473" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M523.698,30.884c-0.342,0.197 -0.78,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.341 0.08,0.779 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="305.972" cy="29.398" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="769.852" cy="44.016" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="711.687" cy="24.074" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="734.953" cy="30.168" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><circle cx="717.719" cy="10.364" r="0.673" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="756.911" cy="16.319" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M454.676,37.115c0.698,0.403 1.592,0.163 1.995,-0.535c0.403,-0.698 0.164,-1.592 -0.534,-1.995c-0.698,-0.403 -1.592,-0.164 -1.995,0.534c-0.404,0.698 -0.164,1.592 0.534,1.996Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M465.701,47.253c0.342,0.197 0.78,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.779 -0.262,-0.977c-0.342,-0.197 -0.779,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M32.393,28.151c0.342,0.197 0.78,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.78 -0.262,-0.977c-0.341,-0.197 -0.779,-0.08 -0.976,0.262c-0.198,0.342 -0.08,0.779 0.261,0.977Z" style="fill:#fffeee;fill-opacity:0.69;"/><path d="M494.249,8.398c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.261c-0.198,0.342 -0.08,0.78 0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M699.212,25.017c0.342,0.197 0.78,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.779 -0.262,-0.977c-0.342,-0.197 -0.779,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M549.645,25.017c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.779 -0.262,-0.977c-0.342,-0.197 -0.78,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M472.652,7.069c0.442,0.255 1.009,0.103 1.265,-0.339c0.255,-0.443 0.103,-1.01 -0.339,-1.265c-0.443,-0.256 -1.01,-0.104 -1.265,0.339c-0.256,0.442 -0.104,1.009 0.339,1.265Z" style="fill:#fee;fill-opacity:0.69;"/><path d="M416.68,31.856c0.488,0.282 1.112,0.114 1.394,-0.373c0.281,-0.488 0.114,-1.112 -0.374,-1.393c-0.487,-0.282 -1.112,-0.115 -1.393,0.373c-0.281,0.487 -0.114,1.112 0.373,1.393Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M529.444,13.243c0.565,0.326 1.289,0.132 1.615,-0.433c0.326,-0.565 0.132,-1.289 -0.433,-1.615c-0.565,-0.326 -1.289,-0.133 -1.615,0.433c-0.326,0.565 -0.132,1.288 0.433,1.615Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M498.917,29.864c0.52,0.3 1.186,0.122 1.486,-0.398c0.301,-0.52 0.122,-1.186 -0.398,-1.486c-0.52,-0.3 -1.186,-0.122 -1.486,0.398c-0.3,0.52 -0.122,1.186 0.398,1.486Z" style="fill:#fff8e8;fill-opacity:0.69;"/><circle cx="573.265" cy="5.3" r="0.967" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="648.544" cy="38.618" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="638.738" cy="17.799" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="274.158" cy="3.264" r="1.069" style="fill:#fee;fill-opacity:0.69;"/><circle cx="213.142" cy="10.187" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M173.074,50.556c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.198 0.779,-0.08 0.976,0.262c0.198,0.341 0.08,0.779 -0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M323.074,50.556c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.198 0.779,-0.08 0.976,0.262c0.198,0.341 0.08,0.779 -0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M353.074,50.556c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.198 0.779,-0.08 0.976,0.262c0.198,0.341 0.08,0.779 -0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M383.074,50.556c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.198 0.779,-0.08 0.976,0.262c0.198,0.341 0.08,0.779 -0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="254.174" cy="44.157" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="263.98" cy="23.339" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="299.577" cy="15.727" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="195.559" cy="38.849" r="1.461" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="233.963" cy="33.683" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M37.775,12.928c0.342,-0.197 0.78,-0.08 0.977,0.262c0.197,0.342 0.08,0.779 -0.262,0.977c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="146.674" cy="49.327" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="126.868" cy="20.146" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="481.272" cy="27.758" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="735.084" cy="60.046" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M623.013,27.532c-0.698,0.403 -1.592,0.163 -1.995,-0.535c-0.403,-0.698 -0.164,-1.592 0.535,-1.995c0.698,-0.403 1.592,-0.164 1.995,0.535c0.403,0.698 0.163,1.592 -0.535,1.995Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M520.261,21.259c-0.698,0.403 -1.592,0.163 -1.995,-0.535c-0.403,-0.698 -0.164,-1.592 0.534,-1.995c0.698,-0.403 1.592,-0.164 1.995,0.535c0.404,0.698 0.164,1.592 -0.534,1.995Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M554.976,21.878c-0.52,0.3 -1.186,0.122 -1.486,-0.398c-0.3,-0.52 -0.122,-1.186 0.398,-1.486c0.52,-0.3 1.186,-0.122 1.486,0.398c0.301,0.52 0.122,1.186 -0.398,1.486Z" style="fill:#fff8e8;fill-opacity:0.69;"/><circle cx="591.184" cy="24.216" r="0.762" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="208.506" cy="36.92" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="183.086" cy="22.385" r="1.069" style="fill:#fee;fill-opacity:0.69;"/><circle cx="153.07" cy="32.998" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="280.376" cy="27.009" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="62.16" cy="47.109" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="260.57" cy="57.828" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="740.966" cy="51.298" r="0.826" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="801.399" cy="55.949" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="778.687" cy="80.323" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="801.953" cy="74.229" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><ellipse cx="726.231" cy="58.633" rx="0.737" ry="0.821" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="763.911" cy="64.439" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M462.155,64.919c0.575,0.333 1.312,0.135 1.644,-0.44c0.333,-0.576 0.135,-1.313 -0.44,-1.645c-0.576,-0.332 -1.313,-0.135 -1.645,0.441c-0.332,0.575 -0.135,1.312 0.441,1.644Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M454.7,52.358c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.341 0.08,-0.779 -0.262,-0.977c-0.342,-0.197 -0.779,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.78 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M469.393,136.271c0.342,0.198 0.78,0.081 0.977,-0.261c0.197,-0.342 0.08,-0.78 -0.262,-0.977c-0.341,-0.197 -0.779,-0.08 -0.976,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#fffeee;fill-opacity:0.69;"/><path d="M501.249,56.519c0.342,0.197 0.78,0.08 0.977,-0.262c0.198,-0.341 0.08,-0.779 -0.261,-0.976c-0.342,-0.198 -0.78,-0.081 -0.977,0.261c-0.198,0.342 -0.08,0.78 0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M706.212,73.138c0.342,0.197 0.78,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.78 -0.262,-0.977c-0.342,-0.197 -0.779,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.779 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M556.645,73.138c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.78 -0.262,-0.977c-0.342,-0.197 -0.78,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.779 0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M729.58,36.383c0.698,0.403 1.592,0.163 1.995,-0.535c0.403,-0.698 0.164,-1.592 -0.534,-1.995c-0.698,-0.403 -1.592,-0.163 -1.995,0.535c-0.403,0.698 -0.164,1.592 0.534,1.995Z" style="fill:#fee;fill-opacity:0.69;"/><path d="M548.231,56.532c0.698,0.403 1.592,0.163 1.995,-0.535c0.403,-0.698 0.164,-1.592 -0.535,-1.995c-0.698,-0.403 -1.592,-0.164 -1.995,0.535c-0.403,0.698 -0.163,1.592 0.535,1.995Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M650.983,50.259c0.698,0.403 1.592,0.163 1.995,-0.535c0.403,-0.698 0.164,-1.592 -0.534,-1.995c-0.698,-0.403 -1.592,-0.164 -1.995,0.535c-0.403,0.698 -0.164,1.592 0.534,1.995Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M616.268,50.878c0.52,0.3 1.186,0.122 1.486,-0.398c0.3,-0.52 0.122,-1.186 -0.398,-1.486c-0.52,-0.3 -1.186,-0.122 -1.486,0.398c-0.301,0.52 -0.122,1.186 0.398,1.486Z" style="fill:#fff8e8;fill-opacity:0.69;"/><circle cx="580.06" cy="53.216" r="0.762" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="655.544" cy="86.738" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="645.738" cy="65.92" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="681.158" cy="31.385" r="1.069" style="fill:#fee;fill-opacity:0.69;"/><circle cx="610.142" cy="158.308" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M750.074,78.677c-0.342,0.198 -0.78,0.08 -0.977,-0.262c-0.198,-0.341 -0.08,-0.779 0.262,-0.976c0.341,-0.198 0.779,-0.08 0.976,0.261c0.198,0.342 0.08,0.78 -0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="651.174" cy="122.278" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="660.98" cy="71.459" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="696.577" cy="63.848" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="592.8" cy="77.257" r="0.805" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="630.963" cy="81.803" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M270.546,74.392c0.342,-0.197 0.78,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.341 -0.08,-0.779 0.262,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="533.674" cy="47.448" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="523.868" cy="128.267" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="488.272" cy="75.878" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="742.084" cy="108.167" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="53.278" cy="53.978" r="0.826" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="24.392" cy="61.26" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="59.845" cy="176.828" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="82.557" cy="81.202" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="59.291" cy="75.108" r="1.461" style="fill:#fee;fill-opacity:0.69;"/><circle cx="13.635" cy="87.617" r="1.228" style="fill:#fee;fill-opacity:0.69;"/><circle cx="136.525" cy="59.364" r="0.673" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="97.333" cy="65.319" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M399.568,66.115c-0.698,0.403 -1.592,0.163 -1.995,-0.535c-0.403,-0.698 -0.164,-1.592 0.534,-1.995c0.699,-0.403 1.593,-0.164 1.996,0.534c0.403,0.698 0.163,1.592 -0.535,1.996Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M398.543,46.253c-0.342,0.197 -0.78,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.779 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M391.851,117.151c-0.342,0.197 -0.78,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.78 0.262,-0.977c0.341,-0.197 0.779,-0.08 0.976,0.262c0.198,0.342 0.081,0.779 -0.261,0.977Z" style="fill:#fffeee;fill-opacity:0.69;"/><path d="M359.995,57.398c-0.342,0.198 -0.78,0.08 -0.977,-0.261c-0.198,-0.342 -0.08,-0.78 0.261,-0.977c0.342,-0.198 0.78,-0.08 0.977,0.261c0.198,0.342 0.08,0.78 -0.261,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M155.032,74.017c-0.342,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.779 0.262,-0.977c0.342,-0.197 0.779,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M304.599,74.017c-0.341,0.197 -0.779,0.08 -0.977,-0.262c-0.197,-0.342 -0.08,-0.779 0.262,-0.977c0.342,-0.197 0.78,-0.08 0.977,0.262c0.197,0.342 0.08,0.78 -0.262,0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M381.592,56.069c-0.442,0.255 -1.009,0.103 -1.265,-0.339c-0.255,-0.443 -0.103,-1.01 0.339,-1.265c0.443,-0.256 1.01,-0.104 1.265,0.339c0.256,0.442 0.104,1.009 -0.339,1.265Z" style="fill:#fee;fill-opacity:0.69;"/><path d="M437.564,80.856c-0.488,0.282 -1.112,0.114 -1.393,-0.373c-0.282,-0.488 -0.115,-1.112 0.373,-1.393c0.487,-0.282 1.112,-0.115 1.393,0.373c0.282,0.487 0.114,1.112 -0.373,1.393Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M314.8,32.243c-0.565,0.326 -1.288,0.132 -1.615,-0.433c-0.326,-0.565 -0.132,-1.289 0.433,-1.615c0.565,-0.326 1.289,-0.133 1.615,0.433c0.326,0.565 0.132,1.288 -0.433,1.615Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M355.327,78.864c-0.52,0.3 -1.186,0.122 -1.486,-0.398c-0.3,-0.52 -0.122,-1.186 0.398,-1.486c0.52,-0.3 1.186,-0.122 1.486,0.398c0.3,0.52 0.122,1.186 -0.398,1.486Z" style="fill:#fff8e8;fill-opacity:0.69;"/><circle cx="280.979" cy="54.3" r="0.967" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="205.7" cy="87.618" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="215.506" cy="176.799" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="190.086" cy="52.264" r="1.069" style="fill:#fee;fill-opacity:0.69;"/><circle cx="251.102" cy="59.187" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M301.17,49.556c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M151.17,49.556c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M121.17,49.556c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><path d="M91.17,49.556c0.342,0.198 0.78,0.08 0.977,-0.261c0.198,-0.342 0.08,-0.78 -0.261,-0.977c-0.342,-0.198 -0.78,-0.08 -0.977,0.262c-0.198,0.341 -0.08,0.779 0.261,0.976Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="210.07" cy="93.157" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="200.264" cy="72.339" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="164.667" cy="64.727" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="268.685" cy="127.849" r="1.461" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="230.281" cy="82.683" r="1.088" style="fill:#fff8e8;fill-opacity:0.69;"/><path d="M426.469,61.928c-0.342,-0.197 -0.78,-0.08 -0.977,0.262c-0.197,0.342 -0.08,0.779 0.262,0.977c0.342,0.197 0.779,0.08 0.977,-0.262c0.197,-0.342 0.08,-0.78 -0.262,-0.977Z" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="327.57" cy="48.327" r="0.715" style="fill:#fffeee;fill-opacity:0.69;"/><circle cx="337.376" cy="69.146" r="0.715" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="372.972" cy="76.758" r="0.496" style="fill:#eeefff;fill-opacity:0.69;"/><circle cx="119.16" cy="109.046" r="0.44" style="fill:#eeefff;fill-opacity:0.69;"/></g><g id="Clouds"><path id="_-Curve-" serif:id="(Curve)" d="M610.291,177.316c-35.879,-0.428 -84.67,-0.691 -138.392,-0.689c-38.684,0.002 -74.811,0.141 -105.402,0.38c-49.14,-2.745 -80.877,-9.954 -80.877,-14.718c0,-1.333 2.655,0.335 7.294,-0.896c96.772,-0.175 171.302,-1.213 171.302,-2.464c0,-1.107 -59.462,-3.372 -140.106,-3.687c38.487,-2.059 102.543,-4.972 173.823,-4.972c11.996,0 23.761,0.07 35.216,0.206c20.76,-4.638 60.945,-2.784 107.07,-2.784c36.08,0 68.525,-0.075 90.882,2.983c32.491,0.899 72.142,-1.186 114.922,-0.379c38.68,0.729 74.805,1.273 105.395,1.613c49.101,3.673 80.599,8.516 80.54,13.279c-0.016,1.334 -2.504,2.58 -7.158,3.723c-96.763,-1.654 -171.297,-2.024 -171.312,-0.774c-0.013,1.108 58.473,3.15 139.105,4.989c-38.514,3.085 -101.653,4.38 -172.925,3.033c-11.995,-0.227 -23.757,-0.52 -35.209,-0.872c-20.815,4.245 -61.034,6.631 -107.154,5.759c-24.754,-0.468 -47.786,-1.809 -67.014,-3.73Z" style="fill:#ddf0fb;"/><path id="_-Curve-1" serif:id="(Curve)" d="M609.299,171.607c-35.88,-0.338 -84.67,-0.545 -138.392,-0.543c-38.684,0.001 -74.812,0.111 -105.402,0.299c-49.141,-2.166 -80.694,-5.519 -80.694,-9.279c0,-1.052 2.472,-2.073 7.111,-3.045c96.772,-0.137 171.302,-0.957 171.302,-1.944c-0.001,-0.874 -58.506,-1.614 -139.15,-1.862c38.471,-3.009 101.587,-4.973 172.867,-4.973c11.996,0 23.761,0.055 35.216,0.162c20.76,-3.66 60.945,-6.143 107.07,-6.143c36.08,0 68.525,1.519 90.882,3.933c32.491,0.709 72.142,1.432 114.922,2.069c38.68,0.575 74.805,1.005 105.395,1.272c49.101,2.9 80.598,6.722 80.54,10.482c-0.017,1.052 -2.505,2.036 -7.158,2.938c-96.763,-1.305 -171.297,-1.597 -171.312,-0.611c-0.014,0.875 58.473,2.486 139.104,3.938c-38.514,2.435 -101.653,3.457 -172.924,2.394c-11.995,-0.179 -23.758,-0.41 -35.21,-0.688c-20.814,3.35 -61.033,5.234 -107.153,4.545c-24.754,-0.369 -47.786,-1.428 -67.014,-2.944Z" style="fill:#d8effd;"/><path d="M684.234,222.269c-12.108,-1.642 -29.721,-2.832 -29.76,-5.218c-0.063,-3.861 34.226,-4.225 76.6,-3.504c42.375,0.721 75.9,-2.707 76.956,1.008c2.476,8.704 -12.549,8.552 -32.56,10.141c-12.403,-0.58 -28.24,0.216 -44.434,0.479c-16.193,0.263 -35.197,-1.331 -46.802,-2.906Z" style="fill:#d8effd;"/><path d="M130.064,213.821c42.381,0 76.789,0.237 76.789,4.224c0,3.986 -14.408,4.223 -56.789,4.223c-42.38,0 -96.788,0.208 -96.788,-4.223c0,-4.431 34.408,-4.224 76.788,-4.224Z" style="fill:#d8effd;"/></g><g id="Mountains"><path d="M476.098,218.299l81.644,216.765l-205.408,0l123.764,-216.765Z" style="fill:#4560a0;"/><path d="M476.098,218.299l21.823,203.477l81.177,-8.706l-103,-194.771Z" style="fill:#5e84ba;"/><path d="M369.627,308.648l88.326,125.788l-205.407,0l117.081,-125.788Z" style="fill:#4560a0;"/><path d="M326.11,338.332l68.193,96.732l-205.407,0l137.214,-96.732Z" style="fill:#4560a0;"/><path d="M508.168,243.792l163.526,204.747l-256.643,0l93.117,-204.747Z" style="fill:#4560a0;"/><path d="M508.168,245.355l63.395,75.115l-54.953,46.379l-8.442,-121.494Z" style="fill:#5e84ba;"/><path d="M369.612,308.648l54.182,77.687l-58.981,41.135l4.799,-118.822Z" style="fill:#5e84ba;"/><path d="M326.184,338.326l16.813,23.99l-16.887,11.835l0.074,-35.825Z" style="fill:#5e84ba;"/><path d="M633.647,230.42l175.693,204.644l-351.387,0l175.694,-204.644Z" style="fill:#4560a0;"/><path d="M633.647,230.42l101.573,245.129l86.041,-35.653l-187.614,-209.476Z" style="fill:#5e84ba;"/><path d="M643.625,254.384c-0.571,0.219 -0.745,0.283 -1.863,0.82c-2.864,1.395 -6.079,3.209 -9.184,2.64c-6.187,-1.134 -10.854,-6.283 -16.725,-6.738l17.786,-20.729l9.986,24.007Z" style="fill:#d9d9d9;"/><path d="M654.229,253.4c-0.494,-0.028 -0.875,-0.013 -0.875,-0.013c-3.255,-0.486 -6.617,-0.192 -9.677,0.982l-0.052,0.02l-9.978,-23.97l20.582,22.981Z" style="fill:#fff;"/></g><g id="Buildings"><path d="M195.171,451.298l0,-292.145l-102.462,0l0,292.145l102.462,0Z" style="fill:url(#_Linear4);"/><path d="M289.755,451.298l0,-218.487l-57.232,0l0,218.487l57.232,0Z" style="fill:url(#_Linear5);"/><path d="M323.451,451.298l0,-123.585l-71.555,0l0,123.585l71.555,0Z" style="fill:#b4dbfb;"/><path d="M207.557,451.298l0,-218.487l25.314,0l0,218.487l-25.314,0Z" style="fill:#b4dbfb;"/><path d="M92.709,451.298l0,-292.145l25.314,0l0,292.145l-25.314,0Z" style="fill:#b4dbfb;"/><path d="M323.451,451.298l0,-123.585l-16.692,0l0,123.585l16.692,0Z" style="fill:url(#_Linear6);"/><path d="M272.498,451.298l0,-95.771l-136.555,0l0,95.771l136.555,0Z" style="fill:url(#_Linear7);"/><path d="M85.122,451.298l0,-178.856l-97.675,0l0,178.856l97.675,0Z" style="fill:url(#_Linear8);"/><path d="M173.526,451.298l0,-95.771l-37.583,0l0,95.771l37.583,0Z" style="fill:#b4dbfb;"/><path d="M66.649,456.944l0,-184.502l-69.677,0l0,184.502l69.677,0Z" style="fill:#b4dbfb;"/></g><rect x="-3.028" y="431.298" width="826.844" height="20.006" style="fill:#fafafa;"/><g id="Laptop"><path d="M606.064,273.603c0,-6.261 -5.076,-11.337 -11.337,-11.337c-37.536,0 -157.517,0 -195.054,0c-6.261,0 -11.337,5.076 -11.337,11.337c0,33.077 0,128.577 0,151.521c0,1.326 0.527,2.598 1.465,3.536c0.938,0.937 2.209,1.464 3.535,1.464c29.3,0 178.429,0 207.728,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-22.944 0,-118.444 0,-151.521Z" style="fill:#657390;"/><path d="M606.064,273.603c0,-6.261 -5.076,-11.337 -11.337,-11.337c-37.536,0 -157.517,0 -195.054,0c-6.261,0 -11.337,5.076 -11.337,11.337c0,33.077 0,128.577 0,151.521c0,1.326 0.527,2.598 1.465,3.536c0.938,0.937 2.209,1.464 3.535,1.464c29.3,0 178.429,0 207.728,0c1.326,0 2.598,-0.527 3.536,-1.464c0.937,-0.938 1.464,-2.21 1.464,-3.536c0,-22.944 0,-118.444 0,-151.521Z" style="fill:#657390;"/><path d="M599.193,275.905c0,-3.05 -2.476,-5.526 -5.526,-5.526l-193.063,0c-3.05,0 -5.526,2.476 -5.526,5.526l0,141.039c0,3.05 2.476,5.526 5.526,5.526l193.063,0c3.05,0 5.526,-2.476 5.526,-5.526l0,-141.039Z" style="fill:#130c2b;"/><path d="M655.04,427.228c0,-0.252 -0.205,-0.457 -0.457,-0.457c-13.334,0 -313.753,0 -313.753,0l0,4.975c0,2.761 2.239,5 5,5c36.953,0 267.257,0 304.21,0c2.761,0 5,-2.239 5,-5c0,-1.845 0,-3.687 0,-4.518Z" style="fill:url(#_Linear9);"/><circle id="Camera" cx="497.178" cy="267.001" r="1.238" style="fill-opacity:0.45;"/><circle id="Mic" cx="500.009" cy="267.001" r="0.527" style="fill-opacity:0.45;"/><circle id="Ambient-Light-" serif:id="Ambient Light?" cx="494.263" cy="267.001" r="0.527" style="fill:#102708;fill-opacity:0.45;"/><g id="Icon"><path d="M543.109,335.27l-18.005,-18.014l-4.857,4.857l15.576,15.585l-15.576,15.582l4.857,4.856l18.005,-18.007c0.649,-0.652 1.008,-1.516 1.008,-2.434c-0.004,-0.918 -0.359,-1.778 -1.008,-2.425" style="fill:#ccffd6;fill-rule:nonzero;"/><path d="M497.136,326.699c7.364,-7.356 19.316,-7.354 26.677,0.007c7.361,7.362 7.364,19.313 0.007,26.677l0.007,0.007l-26.684,26.684l-26.684,-26.684c-7.364,-7.363 -7.364,-19.32 0,-26.684c7.361,-7.361 19.313,-7.363 26.677,-0.007Z" style="fill:#c47dff;"/><path d="M473.797,339.323l-4.859,-4.857l-18.012,18.01c-0.647,0.646 -1.004,1.511 -1.001,2.428c0,0.918 0.354,1.781 1.001,2.428l18.012,18.012l4.859,-4.856l-15.583,-15.584l15.583,-15.581Z" style="fill:#ccffd6;fill-rule:nonzero;"/></g></g></g><defs><linearGradient id="_Linear2" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(-8.64246e-14,451.564,-803.856,-1.43038e-13,398.9,-3.51255)"><stop offset="0" style="stop-color:#68adfc;stop-opacity:1"/><stop offset="0.34" style="stop-color:#cbe0f8;stop-opacity:1"/><stop offset="1" style="stop-color:#d2cbf8;stop-opacity:1"/></linearGradient><radialGradient id="_Radial3" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(647.316,0,0,309.935,720.558,355.142)"><stop offset="0" style="stop-color:#cfcfcf;stop-opacity:0.65"/><stop offset="1" style="stop-color:#fff552;stop-opacity:0"/></radialGradient><linearGradient id="_Linear4" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(31.4265,292.145,-292.145,31.4265,112.513,159.153)"><stop offset="0" style="stop-color:#bde8f7;stop-opacity:1"/><stop offset="1" style="stop-color:#86b6fe;stop-opacity:1"/></linearGradient><linearGradient id="_Linear5" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(19.1616,218.487,-218.487,19.1616,241.977,232.811)"><stop offset="0" style="stop-color:#bde8f7;stop-opacity:1"/><stop offset="1" style="stop-color:#86b6fe;stop-opacity:1"/></linearGradient><linearGradient id="_Linear6" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(0,123.585,-123.585,0,315.105,327.713)"><stop offset="0" style="stop-color:#bde8f7;stop-opacity:1"/><stop offset="1" style="stop-color:#86b6fe;stop-opacity:1"/></linearGradient><linearGradient id="_Linear7" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(47.6759,123.555,-123.555,47.6759,204.22,342.055)"><stop offset="0" style="stop-color:#bde8f7;stop-opacity:1"/><stop offset="1" style="stop-color:#86b6fe;stop-opacity:1"/></linearGradient><linearGradient id="_Linear8" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.16924e-14,190.951,-190.951,1.16924e-14,77.8467,255.423)"><stop offset="0" style="stop-color:#bde8f7;stop-opacity:1"/><stop offset="1" style="stop-color:#86b6fe;stop-opacity:1"/></linearGradient><linearGradient id="_Linear9" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(314.21,0,0,9.97478,340.83,431.758)"><stop offset="0" style="stop-color:#a9abc1;stop-opacity:1"/><stop offset="0.11" style="stop-color:#65687d;stop-opacity:1"/><stop offset="0.5" style="stop-color:#c3c5d2;stop-opacity:1"/><stop offset="0.89" style="stop-color:#64677c;stop-opacity:1"/><stop offset="1" style="stop-color:#a4a7c2;stop-opacity:1"/></linearGradient></defs></svg>
src/Button/Component.purs+20−12
@@ -2,15 +2,20 @@ module Button.Component where
22
33import Prelude
44
5+import CSS (ColorSpace(..), mix, toHexString)
6+import CSS.Safer (cssSafer)
7+import Color (fromHexString)
58import Data.Foldable (intercalate)
9+import Data.Maybe (fromMaybe)
610import Data.Monoid (guard)
711import Effect (Effect)
812import Prim.Row (class Lacks, class Union)
913import React.Basic (JSX)
10−import React.Basic.DOM (Props_button, css, unsafeCreateDOMComponent)
14+import React.Basic.DOM (Props_button, unsafeCreateDOMComponent)
1115import React.Basic.Hooks (ReactComponent, component, element)
1216import React.Basic.Hooks as React
1317import Record (union)
18+import Theme (increaseContrast)
1419import Theme.Styles (classNames, makeStyles)
1520import Theme.Types (CSSTheme)
1621
@@ -39,13 +44,13 @@ mkButton = do
3944 useStyles <-
4045 makeStyles \(theme ∷ CSSTheme) ->
4146 { "@keyframes gradientBG":
42− css
43− { "0%": css { backgroundPosition: "0% 50%" }
44− , "50%": css { backgroundPosition: "100% 50%" }
45− , "100%": css { backgroundPosition: "0% 50%" }
47+ cssSafer
48+ { "0%": { backgroundPosition: "0% 50%" }
49+ , "50%": { backgroundPosition: "100% 50%" }
50+ , "100%": { backgroundPosition: "0% 50%" }
4651 }
4752 , btn:
48− css
53+ cssSafer
4954 { background:
5055 if theme.isLight
5156 then
@@ -77,7 +82,6 @@ mkButton = do
7782 , textTransform: "uppercase"
7883 , outline: "none"
7984 , "&:focus":
80− css
8185 { background:
8286 linearGradient
8387 [ "-5deg"
@@ -90,7 +94,6 @@ mkButton = do
9094 , animation: "$gradientBG 3s ease infinite"
9195 }
9296 , "&:active":
93− css
9497 { background:
9598 linearGradient
9699 [ "180deg"
@@ -100,7 +103,6 @@ mkButton = do
100103 , boxShadow: "inset 0 0 2px black"
101104 }
102105 , "&:disabled":
103− css
104106 { boxShadow: "0 0 0 black"
105107 , background: theme.backgroundColour
106108 , border: "1px dotted " <> theme.interfaceColourLightest
@@ -109,7 +111,7 @@ mkButton = do
109111 }
110112 }
111113 , highlightedButton:
112− css
114+ cssSafer
113115 { background:
114116 if theme.isLight
115117 then
@@ -117,11 +119,17 @@ mkButton = do
117119 else
118120 linearGradient [ theme.highlightColour, theme.highlightColourDark ]
119121 , "&:active":
120− css
121122 { background:
122123 linearGradient [ theme.highlightColourDark, theme.highlightColour ]
123124 }
124− , color: theme.textColour
125+ , color: fromMaybe theme.textColour
126+ do
127+ hlc <- theme.highlightColour # fromHexString
128+ hlcd <- theme.highlightColourDark # fromHexString
129+ let bg = if theme.isLight then hlc else mix HSL hlc hlcd 0.5
130+ tc <- theme.textColour # fromHexString
131+ pure $ increaseContrast bg tc # toHexString
132+
125133 }
126134 }
127135 component "Button" \{ children, buttonType, buttonProps } -> React.do
src/CSS/Safer.pursnew file+8
@@ -0,0 +1,8 @@
1+module CSS.Safer where
2+
3+import React.Basic.DOM (CSS, css)
4+import Simple.JSON (class WriteForeign)
5+
6+cssSafer ∷ ∀ r. WriteForeign { | r } => { | r } -> CSS
7+cssSafer = css
8+
src/Card/Component.purs+5−5
@@ -2,9 +2,9 @@ module Card.Component where
22
33import Prelude
44
5+import CSS.Safer (cssSafer)
56import Effect (Effect)
67import React.Basic (JSX)
7−import React.Basic.DOM (css)
88import React.Basic.DOM as R
99import React.Basic.Hooks (ReactComponent, component)
1010import React.Basic.Hooks as React
@@ -21,7 +21,7 @@ mkCard = do
2121 useStyles <-
2222 makeStyles \(theme ∷ CSSTheme) ->
2323 { card:
24− css
24+ cssSafer
2525 { background: theme.backgroundColourLighter
2626 , color: theme.textColour
2727 , margin: "20px"
@@ -52,7 +52,7 @@ mkCardTitle = do
5252 useStyles <-
5353 makeStyles \(theme ∷ CSSTheme) ->
5454 { cardtitle:
55− css
55+ cssSafer
5656 { color: theme.textColourLightest
5757 , fontSize: "1.2em"
5858 , fontWeight: "400"
@@ -80,7 +80,7 @@ mkCardSubtitle = do
8080 useStyles <-
8181 makeStyles \(theme ∷ CSSTheme) ->
8282 { cardtitle:
83− css
83+ cssSafer
8484 { color: theme.textColourDarker
8585 , opacity: "0.8"
8686 , fontSize: "1.0em"
@@ -109,7 +109,7 @@ mkCardContent = do
109109 useStyles <-
110110 makeStyles \(theme ∷ CSSTheme) ->
111111 { cardContent:
112− css
112+ cssSafer
113113 { fontFamily: theme.textFontFamily
114114 , color: theme.textColourDarker
115115 , fontSize: "0.8em"
src/Container/Component.purs+17−16
@@ -1,12 +1,12 @@
11module Container.Component where
22
33import Prelude
4−
4+import CSS.Safer (cssSafer)
55import Container.Header (mkHeader)
6+import Container.Landing (mkLandingPage)
67import Container.Sidebar (mkSidebar, mkSidebarLink)
78import Effect (Effect)
89import React.Basic (JSX)
9−import React.Basic.DOM (css)
1010import React.Basic.DOM as R
1111import React.Basic.Hooks ((/\), ReactComponent, component, element, useState)
1212import React.Basic.Hooks as React
@@ -30,30 +30,34 @@ mkContainer = do
3030
3131mkContainerContent ∷ Effect (ReactComponent { children ∷ Array JSX })
3232mkContainerContent = do
33+ landingPage <- mkLandingPage
3334 sidebar <- mkSidebar
3435 header <- mkHeader
3536 useStyles <-
36− makeStyles \(theme ∷ CSSTheme)->
37+ makeStyles \(theme ∷ CSSTheme) ->
38+ -- { "@global": cssSafer { "*": { outline: "1px solid red" } }
3739 { container:
38− css
40+ cssSafer
3941 { backgroundColor: theme.backgroundColour
4042 , fontFamily: theme.textFontFamily
4143 , color: theme.textColour
4244 , display: "grid"
4345 , transition: "0.2s ease-in-out"
4446 , gridTemplateAreas:
45− "'landing landing landing'"
46− <> "'header header header' "
47− <> "'nav content content'"
47+ "'landing landing landing'"
48+ <> "'header header header' "
49+ <> "'nav content content'"
4850 -- , "footer footer footer"
4951 -- , gridTemplateColumns: "max-content auto"
5052 , minWidth: "100%"
51− , minHeight: "100%"
52− , height: "5000px"
53+ , maxWidth: "100%"
54+ }
55+ , content:
56+ cssSafer
57+ { gridArea: "content"
58+ , minHeight: "200vh"
5359 }
54− , landing: css { width: "100vw", height: "100vh", gridArea: "landing" }
55− , content: css { gridArea: "content" }
56− , icon: css { fill: "theme.textColour" }
60+ , icon: cssSafer { fill: "theme.textColour" }
5761 }
5862 sidebarLink <- mkSidebarLink
5963 component "ContainerContent" \{ children } -> React.do
@@ -63,10 +67,7 @@ mkContainerContent = do
6367 $ R.div
6468 { className: classes.container
6569 , children:
66− [ R.img
67− { src: "https://images.unsplash.com/photo-1537498425277-c283d32ef9db?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9"
68− , className: classes.landing
69− }
70+ [ element landingPage {}
7071 , element sidebar
7172 { collapsed
7273 , modifyCollapsed
src/Container/Header.purs+59−55
@@ -2,24 +2,25 @@ module Container.Header where
22
33import Prelude
44
5−import Control.Alt ((<|>))
5+import CSS.Safer (cssSafer)
66import Data.Int (toNumber)
7−import Data.Maybe (Maybe(..), fromMaybe)
7+import Data.Maybe (Maybe(..))
88import Data.Monoid (guard)
9−import Data.Nullable (null)
10−import Debug.Trace (spy)
9+import Data.Newtype (class Newtype)
10+import Data.Nullable (Nullable, null)
1111import Effect (Effect)
12−import React.Basic.DOM (css)
12+import Effect.Class.Console (log)
1313import React.Basic.DOM as R
14−import React.Basic.Hooks (ReactComponent, component, element, readRef, readRefMaybe, useEffect, useLayoutEffect, useRef, useState, writeRef, (/\))
14+import React.Basic.Hooks (type (/\), Hook, ReactComponent, Ref, UseLayoutEffect, UseRef, UseState, coerceHook, component, element, readRefMaybe, useLayoutEffect, useRef, useState, (/\))
1515import React.Basic.Hooks as React
16−import SVG.Icon (pslogoIcon)
16+import SVG.Icon (trianglelogoIcon)
1717import Theme.Styles (makeStyles)
1818import Theme.Types (CSSTheme)
1919import Typography.Header (HeadingLevel(..), mkH)
20+import Web.DOM (Node)
2021import Web.Event.Event (EventType(..))
21−import Web.Event.EventTarget (addEventListener, eventListener, removeEventListener)
22−import Web.HTML (window)
22+import Web.Event.EventTarget (EventListener, addEventListener, eventListener, removeEventListener)
23+import Web.HTML (HTMLElement, window)
2324import Web.HTML.HTMLElement (offsetTop)
2425import Web.HTML.HTMLElement as HTMLElement
2526import Web.HTML.Window (scrollY, toEventTarget)
@@ -30,73 +31,76 @@ mkHeader = do
3031 useStyles <-
3132 makeStyles \(theme ∷ CSSTheme) ->
3233 { header:
33− css
34+ cssSafer
3435 { backgroundColor: theme.backgroundColour
35− , borderBottom: "1px solid " <> theme.highlightColour
36− , paddingLeft: "20px"
37− , fontFamily: theme.textFontFamily
36+ , borderBottom: "0"
37+ , fontFamily: theme.headingFontFamily
3838 , gridArea: "header"
3939 , display: "flex"
4040 , alignItems: "center"
41− , width: "100vw"
41+ , justifyContent: "flex-end"
42+ , width: "100%"
4243 , height: "80px"
4344 }
44− , sticky: css { position: "fixed", top: "0" }
45+ , sticky: cssSafer { position: "fixed", top: "0" }
46+ , title: cssSafer { paddingRight: "30px"}
4547 , logo:
46− css
48+ cssSafer
4749 { width: "70px"
4850 , height: "70px"
4951 , padding: "5px"
52+ , marginTop: "9px"
5053 , marginRight: "7px"
5154 , fill: theme.textColour
5255 }
5356 }
54− useScrollYPosition <- mkUseScrollYPosition
5557 component "Header" \{} -> React.do
5658 classes <- useStyles
57− mustBeSticky /\ modifyMustBeSticky <- useState false
58− nodeY /\ modifyNodeY <- useState 0
59− nodeOffset /\ modifyONP <- useState Nothing
60− nodeRef <- useRef null
61− scrollYPos <- useScrollYPosition
62− useEffect scrollYPos do
63− maybeNode <- readRefMaybe nodeRef
64− let maybeElem = maybeNode >>= HTMLElement.fromNode
65− case maybeElem of
66− Nothing -> pure (pure unit)
67− Just element -> do
68− offset <- offsetTop element
69− modifyONP case _ of
70− Just x -> Just x
71− Nothing -> Just offset
72− let offset' = fromMaybe offset nodeOffset
73− modifyMustBeSticky
74− if toNumber scrollYPos > offset'
75− then const true
76− else const false
77− pure (pure unit)
78−
59+ shouldBeSticky /\ nodeRef <- useShouldBeSticky
7960 pure
8061 $ R.header
8162 { ref: nodeRef
82− , className: classes.header <> " " <> guard mustBeSticky classes.sticky
63+ , className: classes.header <> " " <> guard shouldBeSticky classes.sticky
8364 , children:
84− [ R.div { children: [ element pslogoIcon {} ], className: classes.logo }
85− , element h { level: H2, text: "Purescript", className: Nothing }
65+ [ element h { level: H2, text: "Kleislove", className: Just classes.title }
66+ , R.div { children: [ element trianglelogoIcon {} ], className: classes.logo }
8667 ]
8768 }
8869
89−mkUseScrollYPosition = do
90− initialPosition <- window >>= scrollY
91− pure $ React.do
92− scrollPosY /\ modifyScrollPosY <- useState initialPosition
70+newtype UseShouldBeSticky hooks
71+ = UseShouldBeSticky (UseLayoutEffect Unit (UseState Boolean (UseRef (Nullable Node) hooks)))
72+
73+derive instance ntUseScrollYPosition ∷ Newtype (UseShouldBeSticky hooks) _
74+
75+useShouldBeSticky ∷ Hook UseShouldBeSticky (Boolean /\ Ref (Nullable Node))
76+useShouldBeSticky =
77+ coerceHook React.do
78+ nodeRef <- useRef null
79+ mustBeSticky /\ modifyMustBeSticky <- useState false
80+ let setSticky = modifyMustBeSticky <<< const
9381 useLayoutEffect unit do
94− target <- window <#> toEventTarget
95− let eventType = EventType "scroll"
96− listener <- eventListener
97− \_ -> window >>= scrollY >>= \newPos -> modifyScrollPosY (const newPos)
98− addEventListener eventType listener false target
99− let _ = spy "registered event listener" unit
100− pure $
101− removeEventListener eventType listener false target
102− pure $ scrollPosY
82+ maybeNode <- readRefMaybe nodeRef
83+ case maybeNode >>= HTMLElement.fromNode of
84+ Nothing -> do
85+ log "Could not register listener because there was no node"
86+ pure (pure unit)
87+ Just element -> do
88+ listener <- makeListener setSticky element
89+ registerListener listener
90+ pure (mustBeSticky /\ nodeRef)
91+
92+scrollEventType ∷ EventType
93+scrollEventType = EventType "scroll"
94+
95+registerListener ∷ EventListener -> Effect (Effect Unit)
96+registerListener listener = do
97+ target <- window <#> toEventTarget
98+ addEventListener scrollEventType listener false target
99+ pure $ removeEventListener scrollEventType listener false target
100+
101+makeListener ∷ (Boolean -> Effect Unit) -> HTMLElement -> Effect EventListener
102+makeListener setSticky element = do
103+ nodeStartPos <- offsetTop element
104+ eventListener $ const do
105+ yPos <- window >>= scrollY <#> toNumber
106+ setSticky $ nodeStartPos < yPos
src/Container/Landing.pursnew file+140
@@ -0,0 +1,140 @@
1+module Container.Landing where
2+
3+import Prelude
4+
5+import Button.Component (ButtonType(..), mkButton)
6+import CSS.Safer (cssSafer)
7+import Data.Foldable (for_)
8+import Data.Nullable (null)
9+import Effect (Effect)
10+import Effect.Uncurried (runEffectFn1)
11+import React.Basic.DOM as R
12+import React.Basic.Events (handler_)
13+import React.Basic.Hooks (ReactComponent, component, element, readRefMaybe, useRef)
14+import React.Basic.Hooks as React
15+import SVG.Icon (trianglelogoIcon)
16+import SVG.Image (landingPageDark, landingPageLight)
17+import Theme.Styles (makeStyles, useTheme)
18+import Theme.Types (CSSTheme)
19+import Typography.Header (mkH)
20+import Unsafe.Coerce (unsafeCoerce)
21+import Web.HTML (window)
22+import Web.HTML.HTMLElement (getBoundingClientRect)
23+import Web.HTML.HTMLElement as HTMLElement
24+
25+mkLandingPage ∷ Effect (ReactComponent {})
26+mkLandingPage = do
27+ useStyles <-
28+ makeStyles \(theme ∷ CSSTheme) ->
29+ { landing:
30+ cssSafer
31+ { width: "100vw"
32+ , height: "100vh"
33+ , gridArea: "landing"
34+ }
35+ , textLayer:
36+ cssSafer
37+ { position: "absolute"
38+ , width: "100%"
39+ , height: "100%"
40+ , zIndex: 2
41+ }
42+ , topBar:
43+ cssSafer
44+ { width: "100%"
45+ , display: "flex"
46+ , flexDirection: "row"
47+ , height: "90px"
48+ , justifyContent: "center"
49+ , alignItems: "space-around"
50+ }
51+ , logo:
52+ cssSafer
53+ { fill: theme.textColour
54+ , width: "50px"
55+ , height: "50px"
56+ , marginTop: "33px"
57+ }
58+ , welcomeText:
59+ cssSafer
60+ { fontSize: "36pt"
61+ , marginTop: "33px"
62+ , marginLeft: "5vw"
63+ }
64+ , welcomeCopy:
65+ cssSafer
66+ { fontSize: "22pt"
67+ , marginTop: "20px"
68+ , marginLeft: "5vw"
69+ , maxWidth: "400px"
70+ }
71+ , actionButton:
72+ cssSafer
73+ { fontSize: "40pt"
74+ , marginLeft: "5vw"
75+ }
76+ , landingImage:
77+ cssSafer
78+ { position: "absolute"
79+ , width: "100%"
80+ , height: "100%"
81+ }
82+ }
83+ h <- mkH
84+ button <- mkButton
85+ component "LandingPage" \{ } -> React.do
86+ classes <- useStyles
87+ theme <- useTheme
88+ ref <- useRef null
89+ let
90+ backgroundImage =
91+ if theme.isLight then
92+ landingPageLight
93+ else
94+ landingPageDark
95+ pure
96+ $ R.div
97+ { ref
98+ , className: classes.landing
99+ , children:
100+ [ element backgroundImage { className: classes.landingImage }
101+ , R.div
102+ { className: classes.textLayer
103+ , children:
104+ [ R.div
105+ { className: classes.topBar
106+ , children: [ element trianglelogoIcon { className: classes.logo } ]
107+ }
108+ , R.div { className: classes.welcomeText, children: [ R.text welcomeText ] }
109+ , R.div { className: classes.welcomeCopy, children: [ R.text copyText ] }
110+ , R.div
111+ { className: classes.actionButton
112+ , children:
113+ [ element button
114+ { buttonProps:
115+ { onClick: handler_ do
116+ maybeNode <- readRefMaybe ref
117+ for_ (maybeNode >>= HTMLElement.fromNode) \n -> do
118+ height <- getBoundingClientRect n <#> _.height
119+ win <- window
120+ runEffectFn1 ((unsafeCoerce win).scrollTo)
121+ { top: height, left: 0, behavior: "smooth"}
122+ }
123+ , buttonType: HighlightedButton
124+ , children: [ R.text buttonText ]
125+ }
126+ ]
127+ }
128+ ]
129+ }
130+ ]
131+ }
132+
133+welcomeText ∷ String
134+welcomeText = "Enter the college of Kleisli"
135+
136+copyText ∷ String
137+copyText = "Learn how to tame and harness the compiler, whether you're a λ or a Λ"
138+
139+buttonText ∷ String
140+buttonText = "I can't wait, let's go!"
src/Container/Sidebar.purs+10−11
@@ -2,10 +2,10 @@ module Container.Sidebar where
22
33import Prelude
44
5+import CSS.Safer (cssSafer)
56import Data.Monoid (guard)
67import Effect (Effect)
78import React.Basic (JSX)
8−import React.Basic.DOM (css)
99import React.Basic.DOM as R
1010import React.Basic.Events (handler_)
1111import React.Basic.Hooks (ReactComponent, component, element)
@@ -26,7 +26,7 @@ mkSidebar = do
2626 useStyles <-
2727 makeStyles \(theme ∷ CSSTheme) ->
2828 { sidebar:
29− css
29+ cssSafer
3030 { background: theme.backgroundColour
3131 , fontFamily: theme.textFontFamily
3232 , color: theme.textColour
@@ -37,10 +37,10 @@ mkSidebar = do
3737 , transition: "0.2s ease-in-out"
3838 , overflowX: "hidden"
3939 }
40− , sidebarCollapsed: css { width: "70px" }
41− , sidebarExpanded: css { width: "250px" }
40+ , sidebarCollapsed: cssSafer { width: "70px" }
41+ , sidebarExpanded: cssSafer { width: "250px" }
4242 , logo:
43− css
43+ cssSafer
4444 { width: "60px"
4545 , height: "60px"
4646 , padding: "0 5px 0 5px"
@@ -49,7 +49,7 @@ mkSidebar = do
4949 , alignSelf: "flex-end"
5050 }
5151 , logoCollapsed:
52− css
52+ cssSafer
5353 {} -- transform: "rotate(180deg)"}
5454 }
5555 menu <- mkMenu
@@ -82,7 +82,7 @@ mkSidebarLink = do
8282 useStyles <-
8383 makeStyles \(theme ∷ CSSTheme) ->
8484 { sidebarEntry:
85− css
85+ cssSafer
8686 { fontFamily: theme.headingFontFamily
8787 , alignSelf: "flex-end"
8888 , justifyContent: "space-between"
@@ -97,13 +97,12 @@ mkSidebarLink = do
9797 , borderRadius: "5px 0 0 5px"
9898 , cursor: "pointer"
9999 , "&:hover":
100− css
101100 { background: theme.highlightColour
102101 }
103− -- , "&:hover": css { opacity: "1.0"}
102+ -- , "&:hover": cssSafer{ opacity: "1.0"}
104103 }
105104 , label:
106− css
105+ cssSafer
107106 { fontFamily: theme.textFontFamily
108107 , color: theme.textColour
109108 , paddingLeft: "20px"
@@ -112,7 +111,7 @@ mkSidebarLink = do
112111 , fontSize: "1.4em"
113112 }
114113 , icon:
115− css
114+ cssSafer
116115 { width: "50px"
117116 , height: "50px"
118117 , padding: "5px 10px 5px 5px"
src/Element.purs+5−4
@@ -1,23 +1,24 @@
11module Element where
22
33import Prelude
4+
5+import CSS.Safer (cssSafer)
46import Effect (Effect)
57import Effect.Console (log)
6−import React.Basic.DOM (css)
78import React.Basic.DOM as R
89import React.Basic.Events (handler_)
910import React.Basic.Hooks (ReactComponent, component, element, useEffect, useState, (/\))
1011import React.Basic.Hooks as React
1112import Theme.Provider (mkThemeProvider)
1213import Theme.Styles (makeStyles)
13−import Theme.Types (Theme)
14+import Theme.Types (CSSTheme)
1415
1516mkToggleButton ∷ Effect (ReactComponent { label ∷ String })
1617mkToggleButton = do
1718 useStyles <-
18− makeStyles \(theme ∷ Theme) -> -- do
19+ makeStyles \(theme ∷ CSSTheme) -> -- do
1920 { button:
20− css
21+ cssSafer
2122 { backgroundColor: theme.highlightColour
2223 , color: theme.textColour
2324 , fontFamily: theme.textFontFamily
src/SVG/Icon.js+14−12
@@ -1,17 +1,18 @@
11'use strict'
22
3−var alternative = require("../../assets/alternative.svg");
4−var ap = require("../../assets/ap.svg");
5−var append = require("../../assets/append.svg");
6−var apply = require("../../assets/apply.svg");
7−var applyflipped = require("../../assets/applyflipped.svg");
8−var bind = require("../../assets/bind.svg");
9−var compose = require("../../assets/compose.svg");
10−var forall = require("../../assets/forall.svg");
11−var kleisli = require("../../assets/kleisli.svg");
12−var map = require("../../assets/map.svg");
13−var mapflipped = require("../../assets/mapflipped.svg");
14−var pslogo = require("../../assets/pslogo.svg");
3+var alternative = require("../../assets/icons/alternative.svg");
4+var ap = require("../../assets/icons/ap.svg");
5+var append = require("../../assets/icons/append.svg");
6+var apply = require("../../assets/icons/apply.svg");
7+var applyflipped = require("../../assets/icons/applyflipped.svg");
8+var bind = require("../../assets/icons/bind.svg");
9+var compose = require("../../assets/icons/compose.svg");
10+var forall = require("../../assets/icons/forall.svg");
11+var kleisli = require("../../assets/icons/kleisli.svg");
12+var map = require("../../assets/icons/map.svg");
13+var mapflipped = require("../../assets/icons/mapflipped.svg");
14+var pslogo = require("../../assets/icons/pslogo.svg");
15+var trianglelogo = require("../../assets/icons/trianglelogo.svg");
1516
1617exports.alternativeIconRaw = alternative.default;
1718exports.apIconRaw = ap.default;
@@ -25,3 +26,4 @@ exports.kleisliIconRaw = kleisli.default;
2526exports.mapIconRaw = map.default;
2627exports.mapflippedIconRaw = mapflipped.default;
2728exports.pslogoIconRaw = pslogo.default;
29+exports.trianglelogoIconRaw = trianglelogo.default;
src/SVG/Icon.purs+23−24
@@ -2,69 +2,72 @@ module SVG.Icon where
22
33import Prelude
44
5+import CSS.Safer (cssSafer)
56import Data.Monoid (guard)
67import Effect (Effect)
78import Prim.Row (class Union)
8−import React.Basic.DOM (css)
99import React.Basic.DOM.SVG as SVG
1010import React.Basic.Hooks (ReactComponent, component)
1111import React.Basic.Hooks as React
1212import Theme.Styles (makeStyles)
13−import Theme.Types (Theme)
13+import Theme.Types (CSSTheme)
1414import Unsafe.Coerce (unsafeCoerce)
1515
16−type ImageProps = ( width ∷ Int, height ∷ Int )
16+type ImageProps = ( width ∷ Int, height ∷ Int, className ∷ String )
1717
18−type Raw = ReactComponent { width ∷ Int, height ∷ Int, className ∷ String }
18+type Raw r = ReactComponent { | r }
1919
20−foreign import alternativeIconRaw ∷ Raw
20+foreign import alternativeIconRaw ∷ ∀ r. Raw r
2121alternativeIcon ∷ ∀ attrs attrs_. Union attrs attrs_ ImageProps => ReactComponent { | attrs }
2222alternativeIcon = unsafeCoerce alternativeIconRaw
2323
24−foreign import apIconRaw ∷ Raw
24+foreign import apIconRaw ∷ ∀ r. Raw r
2525apIcon ∷ ∀ attrs attrs_. Union attrs attrs_ ImageProps => ReactComponent { | attrs }
2626apIcon = unsafeCoerce apIconRaw
2727
28−foreign import appendIconRaw ∷ Raw
28+foreign import appendIconRaw ∷ ∀ r. Raw r
2929appendIcon ∷ ∀ attrs attrs_. Union attrs attrs_ ImageProps => ReactComponent { | attrs }
3030appendIcon = unsafeCoerce appendIconRaw
3131
32−foreign import applyIconRaw ∷ Raw
32+foreign import applyIconRaw ∷ ∀ r. Raw r
3333applyIcon ∷ ∀ attrs attrs_. Union attrs attrs_ ImageProps => ReactComponent { | attrs }
3434applyIcon = unsafeCoerce applyIconRaw
3535
36−foreign import applyflippedIconRaw ∷ Raw
36+foreign import applyflippedIconRaw ∷ ∀ r. Raw r
3737applyflippedIcon ∷ ∀ attrs attrs_. Union attrs attrs_ ImageProps => ReactComponent { | attrs }
3838applyflippedIcon = unsafeCoerce applyflippedIconRaw
3939
40−foreign import bindIconRaw ∷ Raw
40+foreign import bindIconRaw ∷ ∀ r. Raw r
4141bindIcon ∷ ∀ attrs attrs_. Union attrs attrs_ ImageProps => ReactComponent { | attrs }
4242bindIcon = unsafeCoerce bindIconRaw
4343
44−foreign import composeIconRaw ∷ Raw
44+foreign import composeIconRaw ∷ ∀ r. Raw r
4545composeIcon ∷ ∀ attrs attrs_. Union attrs attrs_ ImageProps => ReactComponent { | attrs }
4646composeIcon = unsafeCoerce composeIconRaw
4747
48−foreign import forallIconRaw ∷ Raw
48+foreign import forallIconRaw ∷ ∀ r. Raw r
4949forallIcon ∷ ∀ attrs attrs_. Union attrs attrs_ ImageProps => ReactComponent { | attrs }
5050forallIcon = unsafeCoerce forallIconRaw
5151
52−foreign import kleisliIconRaw ∷ Raw
52+foreign import kleisliIconRaw ∷ ∀ r. Raw r
5353kleisliIcon ∷ ∀ attrs attrs_. Union attrs attrs_ ImageProps => ReactComponent { | attrs }
5454kleisliIcon = unsafeCoerce kleisliIconRaw
5555
56−foreign import mapIconRaw ∷ Raw
56+foreign import mapIconRaw ∷ ∀ r. Raw r
5757mapIcon ∷ ∀ attrs attrs_. Union attrs attrs_ ImageProps => ReactComponent { | attrs }
5858mapIcon = unsafeCoerce mapIconRaw
5959
60−foreign import mapflippedIconRaw ∷ Raw
60+foreign import mapflippedIconRaw ∷ ∀ r. Raw r
6161mapflippedIcon ∷ ∀ attrs attrs_. Union attrs attrs_ ImageProps => ReactComponent { | attrs }
6262mapflippedIcon = unsafeCoerce mapflippedIconRaw
6363
64−foreign import pslogoIconRaw ∷ Raw
64+foreign import pslogoIconRaw ∷ ∀ r. Raw r
6565pslogoIcon ∷ ∀ attrs attrs_. Union attrs attrs_ ImageProps => ReactComponent { | attrs }
6666pslogoIcon = unsafeCoerce pslogoIconRaw
6767
68+foreign import trianglelogoIconRaw ∷ ∀ r. Raw r
69+trianglelogoIcon ∷ ∀ attrs attrs_. Union attrs attrs_ ImageProps => ReactComponent { | attrs }
70+trianglelogoIcon = unsafeCoerce trianglelogoIconRaw
6871
6972
7073data ActiveArrowDirection
@@ -76,22 +79,18 @@ derive instance eqActiveArrowDirection ∷ Eq ActiveArrowDirection
7679mkMenu ∷ Effect (ReactComponent { activeArrowDirection ∷ ActiveArrowDirection })
7780mkMenu = do
7881 useStyles <-
79− makeStyles \(theme ∷ Theme) ->
80− { arrow:
81− css
82+ makeStyles \(theme ∷ CSSTheme) ->
83+ { arrow: cssSafer
8284 { fill: theme.textColour
8385 , transition: "0.3s ease-out"
8486 }
85− , arrowInactive:
86− css
87+ , arrowInactive: cssSafer
8788 { fillOpacity: ".1"
8889 }
89− , svg:
90− css
90+ , svg: cssSafer
9191 { width: "100%"
9292 , height: "100%"
9393 , "&:hover":
94− css
9594 { fill: theme.backgroundColour
9695 }
9796 }
src/SVG/Image.jsnew file+4
@@ -0,0 +1,4 @@
1+'use strict'
2+
3+exports.landingPageLightRaw = require("../../assets/images/landingpagelight.svg").default;
4+exports.landingPageDarkRaw = require("../../assets/images/landingpagedark.svg").default;
src/SVG/Image.pursnew file+17
@@ -0,0 +1,17 @@
1+module SVG.Image where
2+
3+
4+import Prim.Row (class Union)
5+import React.Basic.Hooks (ReactComponent)
6+import SVG.Icon (Raw, ImageProps)
7+import Unsafe.Coerce (unsafeCoerce)
8+
9+foreign import landingPageDarkRaw ∷ ∀ r. Raw r
10+
11+landingPageLight ∷ ∀ attrs attrs_. Union attrs attrs_ ImageProps => ReactComponent { | attrs }
12+landingPageLight = unsafeCoerce landingPageLightRaw
13+
14+foreign import landingPageLightRaw ∷ ∀ r. Raw r
15+
16+landingPageDark ∷ ∀ attrs attrs_. Union attrs attrs_ ImageProps => ReactComponent { | attrs }
17+landingPageDark = unsafeCoerce landingPageDarkRaw
src/Theme.pursnew file+92
@@ -0,0 +1,92 @@
1+module Theme where
2+
3+import Prelude
4+
5+import CSS (ColorSpace(..), blue, brightness, contrast, darken, desaturate, isLight, lighten, mix, rotateHue, toHexString)
6+import Color (Color)
7+import Data.Foldable (intercalate)
8+import Data.Symbol (SProxy(..))
9+import Record.Builder as RB
10+import Theme.Types (Theme, CSSTheme)
11+
12+increaseContrast ∷ Color -> Color -> Color
13+increaseContrast contrastWith = go 0
14+ where
15+ modify = if isLight contrastWith then darken else lighten
16+ go i col
17+ = if contrast contrastWith col >= 7.5 || i >= 20
18+ then col
19+ else go (i+1) (modify 0.1 col)
20+
21+
22+f ∷ ∀ fieldName. SProxy fieldName
23+f = SProxy
24+
25+fromTheme ∷ Theme -> CSSTheme
26+fromTheme theme = RB.build (
27+ -- background
28+ RB.modify (f ∷ _ "backgroundColour") toHexString
29+ >>> RB.insert (f ∷ _ "backgroundColourLighter")
30+ (theme.backgroundColour # lighter >>> toHexString)
31+ >>> RB.modify (f ∷ _ "interfaceColour") toHexString
32+ >>> RB.insert (f ∷ _ "interfaceColourLighter")
33+ (theme.interfaceColour # lighter >>> toHexString)
34+ >>> RB.insert (f ∷ _ "interfaceColourLightest")
35+ (theme.interfaceColour # lighter >>> lighter >>> toHexString)
36+ >>> RB.insert (f ∷ _ "interfaceColourDarker")
37+ (theme.interfaceColour # darker >>> toHexString)
38+ >>> RB.insert (f ∷ _ "interfaceColourDarkest")
39+ (theme.interfaceColour # darker >>> darker >>> toHexString)
40+ -- foreground
41+ >>> RB.modify (f ∷ _ "textColour") toHexString
42+ >>> RB.insert (f ∷ _ "textColourLighter")
43+ (theme.textColour # lighter >>> toHexString)
44+ >>> RB.insert (f ∷ _ "textColourLightest")
45+ (theme.textColour # lighter >>> lighter >>> toHexString)
46+ >>> RB.insert (f ∷ _ "textColourDarker")
47+ (theme.textColour # darker >>> toHexString)
48+ >>> RB.insert (f ∷ _ "textColourDarkest")
49+ (theme.textColour # darker >>> darker >>> toHexString)
50+ -- highlight
51+ >>> RB.modify (f ∷ _ "highlightColour") toHexString
52+ >>> RB.insert (f ∷ _ "highlightColourDark")
53+ (theme.highlightColour # darken 0.2 # rotateHue (-10.0) # toHexString)
54+ -- altHighlight
55+ >>> RB.modify (f ∷ _ "altHighlightColour") toHexString
56+ >>> RB.insert (f ∷ _ "altHighlightColourDark")
57+ (theme.altHighlightColour # darken 0.2 # toHexString)
58+ -- palette
59+ >>> RB.modify (f ∷ _ "yellow") toHexString
60+ >>> RB.modify (f ∷ _ "green") toHexString
61+ >>> RB.modify (f ∷ _ "pink") toHexString
62+ >>> RB.modify (f ∷ _ "orange") toHexString
63+ >>> RB.modify (f ∷ _ "turquoise") toHexString
64+ >>> RB.modify (f ∷ _ "red") toHexString
65+ >>> RB.modify (f ∷ _ "blue") toHexString
66+ -- fonts
67+ >>> RB.modify (f ∷ _ "textFontFamily") (intercalate ",")
68+ >>> RB.modify (f ∷ _ "headingFontFamily") (intercalate ",")
69+ >>> RB.insert (f ∷ _ "isLight") isLightTheme
70+ ) theme
71+ where
72+ isLightTheme = isLight theme.backgroundColour
73+ yellower ∷ Color -> Color
74+ yellower col =
75+ if brightness col > 0.8
76+ then
77+ lighten 0.02 col
78+ else
79+ col
80+ # lighten 0.1
81+ # desaturate 0.03
82+
83+ bluer col =
84+ mix HSL col blue 0.05
85+ # darken 0.1
86+ # desaturate 0.03
87+
88+ lighter ∷ Color -> Color
89+ lighter = yellower
90+
91+ darker ∷ Color -> Color
92+ darker = bluer
src/Theme/Default.purs+23−30
@@ -3,38 +3,31 @@ module Theme.Default where
33import Color as Color
44import Theme.Types (Theme)
55
6−lightTheme ∷ Theme
7−lightTheme =
8− { textColour: Color.hsl 225.0 0.18 0.25
9− , backgroundColour: Color.hsl 210.0 0.00 0.98
10− , interfaceColour: Color.hsl 210.0 0.10 0.70
11− , highlightColour: Color.hsl 150.0 0.55 0.78
12− , altHighlightColour: Color.hsl 84.0 0.617 0.631
13− , textFontFamily: ["-apple-system", "BlinkMacSystemFont", "Helvetica", "Arial", "sans-serif"]
14− , headingFontFamily: ["Montserrat", "Monaco", "sans-serif"]
15− , yellow: Color.rgb 255 235 149
16− , green: Color.rgb 173 219 103
17− , pink: Color.rgb 199 146 234
18− , orange: Color.rgb 255 203 139
19− , turquoise: Color.rgb 127 219 202
20− , red: Color.rgb 255 88 116
21− , blue: Color.rgb 130 170 255
22− }
23−
246darkTheme ∷ Theme
257darkTheme =
26− { backgroundColour: Color.hsl 215.0 0.28 0.20
27− , textColour: Color.hsl 225.0 0.28 0.90
28− , interfaceColour: Color.hsl 215.0 0.28 0.20
29− , highlightColour: Color.rgb 183 130 218
8+ { backgroundColour: Color.hsl 215.0 0.28 0.20
9+ , textColour: Color.hsl 225.0 0.28 0.90
10+ , interfaceColour: Color.hsl 215.0 0.28 0.20
11+ , highlightColour: Color.rgb 183 130 218
3012 , altHighlightColour: Color.hsl 84.0 0.617 0.631
31− , textFontFamily: ["-apple-system", "BlinkMacSystemFont", "Helvetica", "Arial", "sans-serif"]
32− , headingFontFamily: ["Montserrat", "Monaco", "sans-serif"]
33− , yellow: Color.rgb 255 235 149
34− , green: Color.rgb 173 219 103
35− , pink: Color.rgb 199 146 234
36− , orange: Color.rgb 255 203 139
13+ -- , textFontFamily: ["-apple-system", "BlinkMacSystemFont", "Helvetica", "Arial", "sans-serif"]
14+ , textFontFamily: [ "Montserrat", "Monaco", "sans-serif" ]
15+ , headingFontFamily: [ "Montserrat", "Monaco", "sans-serif" ]
16+ , yellow: Color.rgb 255 235 149
17+ , green: Color.rgb 173 219 103
18+ , pink: Color.rgb 199 146 234
19+ , orange: Color.rgb 255 203 139
3720 , turquoise: Color.rgb 127 219 202
38− , red: Color.rgb 255 88 116
39− , blue: Color.rgb 130 170 255
21+ , red: Color.rgb 255 88 116
22+ , blue: Color.rgb 130 170 255
4023 }
24+
25+lightTheme ∷ Theme
26+lightTheme =
27+ darkTheme
28+ { textColour = Color.hsl 225.0 0.18 0.25
29+ , backgroundColour = Color.hsl 210.0 0.00 0.98
30+ , interfaceColour = Color.hsl 210.0 0.10 0.70
31+ , highlightColour = Color.hsl 260.0 0.85 0.58
32+ , altHighlightColour = Color.hsl 84.0 0.617 0.631
33+ }
src/Theme/Styles.purs+2−2
@@ -23,11 +23,11 @@ foreign import data UseStyles ∷ Type -> Type -> Type
2323
2424foreign import makeStylesImpl ∷
2525 ∀ css classNames.
26− EffectFn1 {|css} (Hook (UseStyles { | css }) { | classNames })
26+ EffectFn1 {|css} (Hook (UseStyles { | css}) { | classNames })
2727
2828foreign import makeStylesThemedImpl ∷
2929 ∀ theme css classNames.
30− EffectFn1 ({|theme} -> {|css}) (Hook (UseStyles { | css }) { | classNames })
30+ EffectFn1 ({|theme} -> {|css}) (Hook (UseStyles { | css}) { | classNames })
3131
3232makeStyles ∷
3333 ∀ theme css cssList classNames.
src/Theme/Types.purs−80
@@ -1,13 +1,6 @@
11module Theme.Types where
22
3−import Prelude
4−
5−import CSS (ColorSpace(..), blue, brightness, darken, desaturate, isLight, lighten, mix, rotateHue)
6−import CSS.Color (toHexString)
73import Color (Color)
8−import Data.Foldable (intercalate)
9−import Data.Symbol (SProxy(..))
10−import Record.Builder as RB
114
125type Theme =
136 { backgroundColour ∷ Color
@@ -26,78 +19,6 @@ type Theme =
2619 , blue ∷ Color
2720 }
2821
29−f ∷ ∀ fieldName. SProxy fieldName
30−f = SProxy
31−
32−fromTheme ∷ Theme -> CSSTheme
33−fromTheme theme = RB.build (
34− -- background
35− RB.modify (f ∷ _ "backgroundColour") toHexString
36− >>> RB.insert (f ∷ _ "backgroundColourLighter")
37− (theme.backgroundColour # lighter >>> toHexString)
38− >>> RB.modify (f ∷ _ "interfaceColour") toHexString
39− >>> RB.insert (f ∷ _ "interfaceColourLighter")
40− (theme.interfaceColour # lighter >>> toHexString)
41− >>> RB.insert (f ∷ _ "interfaceColourLightest")
42− (theme.interfaceColour # lighter >>> lighter >>> toHexString)
43− >>> RB.insert (f ∷ _ "interfaceColourDarker")
44− (theme.interfaceColour # darker >>> toHexString)
45− >>> RB.insert (f ∷ _ "interfaceColourDarkest")
46− (theme.interfaceColour # darker >>> darker >>> toHexString)
47− -- foreground
48− >>> RB.modify (f ∷ _ "textColour") toHexString
49− >>> RB.insert (f ∷ _ "textColourLighter")
50− (theme.textColour # lighter >>> toHexString)
51− >>> RB.insert (f ∷ _ "textColourLightest")
52− (theme.textColour # lighter >>> lighter >>> toHexString)
53− >>> RB.insert (f ∷ _ "textColourDarker")
54− (theme.textColour # darker >>> toHexString)
55− >>> RB.insert (f ∷ _ "textColourDarkest")
56− (theme.textColour # darker >>> darker >>> toHexString)
57− -- highlight
58− >>> RB.modify (f ∷ _ "highlightColour") toHexString
59− >>> RB.insert (f ∷ _ "highlightColourDark")
60− (theme.highlightColour # darken 0.2 # rotateHue (-10.0) # toHexString)
61− -- altHighlight
62− >>> RB.modify (f ∷ _ "altHighlightColour") toHexString
63− >>> RB.insert (f ∷ _ "altHighlightColourDark")
64− (theme.altHighlightColour # darken 0.2 # toHexString)
65− -- palette
66− >>> RB.modify (f ∷ _ "yellow") toHexString
67− >>> RB.modify (f ∷ _ "green") toHexString
68− >>> RB.modify (f ∷ _ "pink") toHexString
69− >>> RB.modify (f ∷ _ "orange") toHexString
70− >>> RB.modify (f ∷ _ "turquoise") toHexString
71− >>> RB.modify (f ∷ _ "red") toHexString
72− >>> RB.modify (f ∷ _ "blue") toHexString
73− -- fonts
74− >>> RB.modify (f ∷ _ "textFontFamily") (intercalate ",")
75− >>> RB.modify (f ∷ _ "headingFontFamily") (intercalate ",")
76− >>> RB.insert (f ∷ _ "isLight") isLightTheme
77− ) theme
78− where
79− isLightTheme = isLight theme.backgroundColour
80− yellower ∷ Color -> Color
81− yellower col =
82− if brightness col > 0.8
83− then
84− lighten 0.02 col
85− else
86− col
87− # lighten 0.1
88− # desaturate 0.03
89−
90− bluer col =
91− mix HSL col blue 0.05
92− # darken 0.1
93− # desaturate 0.03
94−
95− lighter ∷ Color -> Color
96− lighter = yellower
97−
98− darker ∷ Color -> Color
99− darker = bluer
100−
10122type CSSTheme =
10223 { backgroundColour ∷ String
10324 , backgroundColourLighter ∷ String
@@ -126,4 +47,3 @@ type CSSTheme =
12647 , red ∷ String
12748 , blue ∷ String
12849 }
129−
src/Typography/Header.purs+7−7
@@ -2,11 +2,11 @@ module Typography.Header where
22
33import Prelude
44
5+import CSS.Safer (cssSafer)
56import Data.Array as Array
67import Data.Foldable (intercalate)
78import Data.Maybe (Maybe)
89import Effect (Effect)
9−import React.Basic.DOM (css)
1010import React.Basic.DOM as R
1111import React.Basic.Hooks (ReactComponent, component)
1212import React.Basic.Hooks as React
@@ -26,12 +26,12 @@ mkH = do
2626 useStyles <-
2727 makeStyles \(theme ∷ CSSTheme) ->
2828 { common:
29− css
29+ cssSafer
3030 { color: theme.textColour
3131 , fontFamily: theme.headingFontFamily
3232 }
3333 , h1:
34− css
34+ cssSafer
3535 { textTransform: "uppercase"
3636 , fontSize: "3.6em"
3737 , letterSpacing: "0.07em"
@@ -39,7 +39,7 @@ mkH = do
3939 , padding: 0
4040 }
4141 , h2:
42− css
42+ cssSafer
4343 { textTransform: "uppercase"
4444 , fontSize: "3em"
4545 , letterSpacing: "0.05em"
@@ -47,19 +47,19 @@ mkH = do
4747 , padding: 0
4848 }
4949 , h3:
50− css
50+ cssSafer
5151 { fontSize: "2.2em"
5252 , margin: 0
5353 , padding: 0
5454 }
5555 , h4:
56− css
56+ cssSafer
5757 { fontSize: "1.5em"
5858 , margin: 0
5959 , padding: 0
6060 }
6161 , h5:
62− css
62+ cssSafer
6363 { fontSize: "1.0em"
6464 , margin: 0
6565 , padding: 0
src/Typography/Paragraph.purs+5−4
@@ -1,20 +1,21 @@
11module Typography.Paragraph where
22
33import Prelude
4+
5+import CSS.Safer (cssSafer)
46import Effect (Effect)
5−import React.Basic.DOM (css)
67import React.Basic.DOM as R
78import React.Basic.Hooks (ReactComponent, component)
89import React.Basic.Hooks as React
910import Theme.Styles (makeStyles)
10−import Theme.Types (Theme)
11+import Theme.Types (CSSTheme)
1112
1213mkP ∷ Effect (ReactComponent { text ∷ String })
1314mkP = do
1415 useStyles <-
15− makeStyles \(theme ∷ Theme) ->
16+ makeStyles \(theme ∷ CSSTheme) ->
1617 { p:
17− css
18+ cssSafer
1819 { color: theme.textColour
1920 , fontFamily: theme.textFontFamily
2021 , fontSize: "1em"
stories/ButtonStories.purs−1
@@ -6,7 +6,6 @@ import Button.Component (ButtonType(..), mkButton)
66import Decorator.FullScreen (fullScreenDecorator)
77import Effect (Effect)
88import Effect.Console (log)
9−import React.Basic.DOM (css)
109import React.Basic.DOM as R
1110import React.Basic.Events (handler_)
1211import React.Basic.Hooks (component, element)
stories/ContainerStories.purs−4
@@ -4,14 +4,10 @@ import Prelude hiding (add)
44import Container.Component (mkContainer)
55import Decorator.FullScreen (fullScreenDecorator)
66import Effect (Effect)
7−import React.Basic.DOM (css)
8−import React.Basic.DOM as R
97import React.Basic.Hooks (component, element)
108import React.Basic.Hooks as React
119import Storybook.React (Storybook, add, addDecorator, storiesOf)
12−import Theme.Default (darkTheme)
1310import Theme.Styles (useTheme)
14−import Theme.Types (fromTheme)
1511
1612stories ∷ Effect Storybook
1713stories =
stories/Decorator/FullScreen.purs+25−10
@@ -1,7 +1,7 @@
11module Decorator.FullScreen where
22
33import Prelude
4−
4+import CSS.Safer (cssSafer)
55import Data.Array (find)
66import Data.Map (Map)
77import Data.Maybe (Maybe, fromMaybe)
@@ -15,9 +15,11 @@ import React.Basic.Events (handler)
1515import React.Basic.Hooks (ReactComponent, component, element, useState, (/\))
1616import React.Basic.Hooks as React
1717import Simple.JSON (readJSON_, writeJSON)
18+import Theme (fromTheme)
1819import Theme.Default (darkTheme, lightTheme)
1920import Theme.Provider (mkThemeProvider)
20−import Theme.Types (CSSTheme, fromTheme)
21+import Theme.Styles (makeStyles_)
22+import Theme.Types (CSSTheme)
2123import Web.HTML (window)
2224import Web.HTML.Window (localStorage)
2325import Web.Storage.Storage (getItem, setItem)
@@ -26,15 +28,14 @@ fullScreenDecorator ∷ JSX -> Effect JSX
2628fullScreenDecorator child = do
2729 let
2830 dark = fromTheme darkTheme
31+
2932 light = fromTheme lightTheme
3033 themeSwitcher <- mkThemeSwitcher
3134 pure
3235 $ R.div
3336 { style:
3437 css
35− { width: "100vw"
36− , minHeight: "900px"
37− , minWidth: "1440px"
38+ { minWidth: "100vw"
3839 , height: "100vh"
3940 }
4041 , children:
@@ -42,9 +43,9 @@ fullScreenDecorator child = do
4243 { children: [ child ]
4344 , defaultTheme: { name: "Dark", theme: dark }
4445 , themes:
45− [ { name: "Dark", theme: dark }
46− , { name: "Light", theme: light }
47− ]
46+ [ { name: "Dark", theme: dark }
47+ , { name: "Light", theme: light }
48+ ]
4849 }
4950 ]
5051 }
@@ -52,7 +53,8 @@ fullScreenDecorator child = do
5253type ThemesWithNames
5354 = Map String CSSTheme
5455
55−type DefaultTheme = { name ∷ String, theme ∷ CSSTheme }
56+type DefaultTheme
57+ = { name ∷ String, theme ∷ CSSTheme }
5658
5759mkThemeSwitcher ∷
5860 Effect
@@ -60,9 +62,20 @@ mkThemeSwitcher ∷
6062 )
6163mkThemeSwitcher = do
6264 themeProvider <- mkThemeProvider
65+ useStyles <-
66+ makeStyles_
67+ { selector:
68+ cssSafer
69+ { position: "absolute"
70+ , zIndex: 20
71+ , top: 10
72+ , right: 10
73+ }
74+ }
6375 storage <- window >>= localStorage
6476 saved ∷ (Maybe DefaultTheme) <- getItem "theme" storage <#> (_ >>= readJSON_)
6577 component "ThemeSwitcher" \{ defaultTheme, themes, children } -> React.do
78+ classes <- useStyles
6679 { theme, name } /\ modTheme <- useState $ fromMaybe defaultTheme saved
6780 let
6881 setTheme newTheme = do
@@ -78,8 +91,10 @@ mkThemeSwitcher = do
7891 R.select
7992 { onChange: handler targetValue handleClicked
8093 , value: name
94+ , className: classes.selector
8195 , children:
82− themes <#> \x ->
96+ themes
97+ <#> \x ->
8398 R.option
8499 { value: x.name
85100 , key: x.name
stories/ThemeStories.purs+8−7
@@ -1,25 +1,26 @@
11module ThemeStories where
22
33import Prelude hiding (add)
4+
45import Effect (Effect)
56import React.Basic.DOM (css)
67import React.Basic.DOM as R
78import React.Basic.Hooks (component, element)
89import Storybook.React (Storybook, add, storiesOf)
10+import Theme (fromTheme)
911import Theme.Default (darkTheme, lightTheme)
10−import Theme.Types (fromTheme)
1112
1213stories ∷ Effect Storybook
1314stories =
1415 storiesOf "Theme" do
1516 add "The swatches in the themes" mkExample
16− [ { theme: darkTheme, name: "Dark theme" }
17− , { theme: lightTheme, name: "Light theme" }
17+ [ { theme: darkTheme, themeName: "Dark theme" }
18+ , { theme: lightTheme, themeName: "Light theme" }
1819 ]
1920 where
2021 mkExample = do
2122 swatch <- mkSwatch
22− component "ExampleSwatches" \{ theme, name } -> React.do
23+ component "ExampleSwatches" \{ theme, themeName } -> React.do
2324 let
2425 cssTheme = fromTheme theme
2526
@@ -39,7 +40,7 @@ stories =
3940 , fontFamily: cssTheme.headingFontFamily
4041 , padding: "20px 0 30px 10px"
4142 }
42− , children: [ R.text name ]
43+ , children: [ R.text themeName ]
4344 }
4445 , R.div
4546 { style:
@@ -71,11 +72,11 @@ stories =
7172 component "Swatch" \{ name, colour, fontFamily } -> React.do
7273 pure
7374 $ R.div
74− { style: css { display: "flex", flexDirection: "column", alignItems: "center" }
75+ { style: css{ display: "flex", flexDirection: "column", alignItems: "center" }
7576 , children:
7677 [ R.div
7778 { children: [ R.text name ]
78− , style: css { fontFamily, paddingBottom: "5px" }
79+ , style: css{ fontFamily, paddingBottom: "5px" }
7980 }
8081 , R.div
8182 { style:
stories/TypographyStories.purs−5
@@ -2,16 +2,11 @@ module TypographyStories where
22
33import Prelude hiding (add)
44
5−import Container.Component (mkContainer)
65import Data.Maybe (Maybe(..))
76import Decorator.FullScreen (fullScreenDecorator)
87import Effect (Effect)
9−import React.Basic (element)
108import Storybook.React (Storybook, add, addDecorator, storiesOf)
11−import Theme.Default (darkTheme)
12−import Theme.Types (fromTheme)
139import Typography.Header (HeadingLevel(..), mkH)
14−import Typography.Paragraph (mkP)
1510
1611stories ∷ Effect Storybook
1712stories =