From 87c29b18daac14a4c1cd35541d01299e35af9a4b Mon Sep 17 00:00:00 2001 From: kadormeli Date: Wed, 13 Jul 2022 16:08:29 -0500 Subject: [PATCH 01/12] added resolved challenge --- .gitignore | 1 - PULL_REQUEST_TEMPLATE.md | 14 +- data.json | 292 +- dist/bundle.js | 2 + dist/bundle.js.LICENSE.txt | 31 + dist/github.svg | 1 + dist/index.html | 1 + dist/linkedin.svg | 1 + dist/twitter.svg | 1 + package-lock.json | 3346 ++++++++++++++++++-- package.json | 18 +- postcss.config.js | 6 + public/index.html | 20 +- screenshot.png | Bin 107755 -> 0 bytes src/__test__/components/About.test.js | 8 +- src/__test__/components/Academic.test.js | 8 +- src/__test__/components/Experience.test.js | 8 +- src/__test__/components/Header.test.js | 4 +- src/__test__/components/Interest.test.js | 6 +- src/__test__/components/Languages.test.js | 8 +- src/__test__/components/Profile.test.js | 6 +- src/__test__/components/Skills.test.js | 6 +- src/components/About.jsx | 25 + src/components/Academic.jsx | 47 + src/components/Experience.jsx | 42 + src/components/Header.jsx | 101 + src/components/Interest.jsx | 25 + src/components/Languages.jsx | 32 + src/components/NavBar.jsx | 46 + src/components/Profile.jsx | 25 + src/components/Projects.jsx | 76 + src/components/Skills.jsx | 35 + src/containers/App.jsx | 55 +- src/containers/Icon.jsx | 56 + src/containers/Section.jsx | 16 + src/icons/Block.jsx | 22 + src/icons/Cake.jsx | 22 + src/icons/Contact.jsx | 22 + src/icons/Education.jsx | 24 + src/icons/Email.jsx | 22 + src/icons/Experience.jsx | 22 + src/icons/Experiment.jsx | 22 + src/icons/Fire.jsx | 27 + src/icons/Globe.jsx | 22 + src/icons/Identification.jsx | 22 + src/icons/Language.jsx | 22 + src/icons/Light.jsx | 22 + src/icons/Lightning.jsx | 22 + src/icons/Link.jsx | 22 + src/icons/Location.jsx | 27 + src/icons/Mobile.jsx | 22 + src/icons/Phone.jsx | 22 + src/icons/Profile.jsx | 22 + src/icons/SwipeLeft.jsx | 22 + src/icons/SwipeRight.jsx | 22 + src/icons/User.jsx | 22 + src/index.js | 1 + src/styles.css | 177 ++ src/styles/components/App.styl | 2 - src/utils/getData.js | 15 + tailwind.config.js | 7 + webpack.config.js | 19 +- {.github/workflows => workflows}/main.yml | 0 63 files changed, 4644 insertions(+), 420 deletions(-) create mode 100644 dist/bundle.js create mode 100644 dist/bundle.js.LICENSE.txt create mode 100644 dist/github.svg create mode 100644 dist/index.html create mode 100644 dist/linkedin.svg create mode 100644 dist/twitter.svg create mode 100644 postcss.config.js delete mode 100644 screenshot.png create mode 100644 src/components/About.jsx create mode 100644 src/components/Academic.jsx create mode 100644 src/components/Experience.jsx create mode 100644 src/components/Header.jsx create mode 100644 src/components/Interest.jsx create mode 100644 src/components/Languages.jsx create mode 100644 src/components/NavBar.jsx create mode 100644 src/components/Profile.jsx create mode 100644 src/components/Projects.jsx create mode 100644 src/components/Skills.jsx create mode 100644 src/containers/Icon.jsx create mode 100644 src/containers/Section.jsx create mode 100644 src/icons/Block.jsx create mode 100644 src/icons/Cake.jsx create mode 100644 src/icons/Contact.jsx create mode 100644 src/icons/Education.jsx create mode 100644 src/icons/Email.jsx create mode 100644 src/icons/Experience.jsx create mode 100644 src/icons/Experiment.jsx create mode 100644 src/icons/Fire.jsx create mode 100644 src/icons/Globe.jsx create mode 100644 src/icons/Identification.jsx create mode 100644 src/icons/Language.jsx create mode 100644 src/icons/Light.jsx create mode 100644 src/icons/Lightning.jsx create mode 100644 src/icons/Link.jsx create mode 100644 src/icons/Location.jsx create mode 100644 src/icons/Mobile.jsx create mode 100644 src/icons/Phone.jsx create mode 100644 src/icons/Profile.jsx create mode 100644 src/icons/SwipeLeft.jsx create mode 100644 src/icons/SwipeRight.jsx create mode 100644 src/icons/User.jsx create mode 100644 src/styles.css delete mode 100644 src/styles/components/App.styl create mode 100644 tailwind.config.js rename {.github/workflows => workflows}/main.yml (100%) diff --git a/.gitignore b/.gitignore index 67045665..adb2c197 100644 --- a/.gitignore +++ b/.gitignore @@ -80,7 +80,6 @@ typings/ # Nuxt.js build / generate output .nuxt -dist # Gatsby files .cache/ diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md index 67105c53..e4abc28e 100644 --- a/PULL_REQUEST_TEMPLATE.md +++ b/PULL_REQUEST_TEMPLATE.md @@ -2,8 +2,10 @@ Solución al reto: -Nombre: -Usuario Platzi: +Nombre: Gonzalo Othacehe +Usuario Platzi: gonzaotc + +Deploy: https://react-eth-challenge-alpha.vercel.app/ ## Reto: @@ -14,3 +16,11 @@ Usuario Platzi: - [ ] Quinto Problema - [ ] Sexto Problema - [ ] Septimo Problema + +#### Documentation: +- I made a high order component (Section) to renderice the different components and reuse structure. +- I built the json data structure to be easy adaptable to multi language, I will add a languague switcher later in the CV. +- I integrated a welook link to show my POAP's as part of my resume. +- I made a small project-viewer component, which later will be translated into a carousel to slide right and left. +- As design guideline, without being a designer, I tried to keep it simply, fresh and mistery-looking. +- I added some media queries, to make the CV responsive and good-loking on mobile, where most of my recruiters will be. (This needs more work, as lately I added the Skills and Projects grid.) diff --git a/data.json b/data.json index 94dbaad5..6dea70d8 100644 --- a/data.json +++ b/data.json @@ -1,13 +1,39 @@ { "data": { - "name": "Melissa Walsh", - "profession": "FrontEnd Developer", - "address": "Bogotá, Colombia.", - "email": "melissa@example.com", - "website": "https://example.com", - "phone": "3042034240", - "avatar": "https://arepa.s3.amazonaws.com/melissa.jpg", - "Profile": "Ignore the squirrels, you'll never catch them anyway hack, for floof tum, tickle bum, jellybean footies curly toes climb leg roll over and sun my belly, ", + "name": "Kevin Dorado", + "profession": "Backend developer", + "address": "Mar del Plata, Argentina", + "email": "gonza.otc@gmail.com", + "website": "i_dont_have_a_website_yet", + "phone": "+549223456789", + "avatar": "https://i.postimg.cc/D0vbqtz0/1.jpg", + "profile": { + "title": "Profile", + "description": [ + "Passionate about software development and decentralized systems.", + "Frontend developer at Valtech, currently working on a large payment and billing management platform for pharmacies. Mostly using Next.js, React.js, Styled Components, Storybook, Webpack, Git, BitBucket, Jira and Agile Methodologies.", + "I like to spend my free time learning and practicing Solidity, Ethers.js, Hardhat, Chai and TypeScript to contribute to the web3 ecosystem. Also reading about blockhain, philosophy, productivity and entrepeneurship." + ] + }, + "about": { + "title": "About me", + "items": ["aboutme1", "aboutme2", "aboutme3"] + }, + "interest": { + "title": "Interests", + "interests": [ + "I'm currently learning and practicing Solidity to write better smart contracts, Hardhat as work enviroment to automatice tasks and increasing my efficiency.", + "Ethers.js to interact with the blockchain from my frontend & dev enviroment, Chai to test intensely my contracts, IPFS to permanently store my projects resources.", + "Oracles (ChainLink) to provide my contracts with secure real-word data, and TypeScript to write more robust and secure code overall.", + "This way, I plan to ascend to be a full stack web3 developer sooner.", + "I'm highly interested to work in web3 with a strong team and contribute to the ecosystem." + ] + }, + "networks": { + "github": "github.com/gonzaotc", + "linkedin": "linkedin.com/in/gonzaotc", + "twitter": "twitter.com/gonzaotc" + }, "certificate": [ { "date": "Jan 2021", @@ -22,89 +48,169 @@ "name": "Backend Developer" } ], - "Academic": [ - { - "degree": "Atomic Master", - "description": " I’m so hungry i’m so hungry but ew not for that pelt around the house and up and down stairs chasing phantoms", - "endDate": "Jan 2017", - "institution": "MIT", - "startDate": "Jan 2018" - }, - { - "degree": "Space Engineering", - "description": "Meow in empty rooms. Find empty spot in cupboard and sleep all day check cat door for ambush 10 times before coming in for hack. ", - "endDate": "Decenber 2015", - "institution": "Harvard", - "startDate": "Jan 2017" - } - ], - "experience": [ - { - "company": "PugStar", - "endDate": "Present", - "jobDescription": "scratch the furniture. Good now the other hand, too lay on arms while you're using the keyboard.", - "jobTitle": "Frontend", - "startDate": "Jan 2020" - }, - { - "company": "CatStore", - "endDate": "Jan 2016", - "jobDescription": "Meow in empty rooms lick left leg for ninety minutes, still dirty.", - "jobTitle": "Backend", - "startDate": "Sept 2019" - } - ], - "skills": [ - { - "name": "HTML5", - "percentage": "75%" - }, - { - "name": "CSS", - "percentage": "25%" - }, - { - "name": "JavaScript", - "percentage": "55%" - }, - { - "name": "React", - "percentage": "90%" - } - ], - "interest": [ - "javascript", - "develop", - "backend", - "frontend" - ], - "languages": [ - { - "name": "Spanish", - "percentage": "90%" - }, - { - "name": "English", - "percentage": "50%" - } - ], - "social": [ - { - "name": "facebook", - "url": "https://facebook.com/" - }, - { - "name": "twitter", - "url": "https://twitter.com/" - }, - { - "name": "github", - "url": "https://github.com/" - }, - { - "name": "linkedin", - "url": "https://www.linkedin.com/" - } - ] + "academic": { + "title": "Academic", + "academics": [ + { + "image": "data:image/png;base64,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", + "degree": "Computer Science Engineering", + "institution": "National University of Mar del Plata", + "startDate": "Aug 2019", + "endDate": "Jan 2024", + "description": "Engineer degree on Software Engineering & Computer Science. I will be focusing on distribuited systems." + }, + { + "image": "https://scontent.faep9-3.fna.fbcdn.net/v/t1.6435-9/162526530_5539287129416505_8887209467184853921_n.jpg?_nc_cat=108&ccb=1-7&_nc_sid=09cbfe&_nc_ohc=yXQvaKer8wYAX-6z7jz&_nc_ht=scontent.faep9-3.fna&oh=00_AT_41lw1MtfSsj1aw-dm60PCG3jilsnLnhqxiX31z93mrA&oe=62F042B5", + "degree": "Industrial Engineering", + "description": "Engineer degree with an emphasis on achieving the maximun possible efficiency in productive processes, resources optimization and business management", + "endDate": "Dec 2017", + "institution": "National University of Mar del Plata", + "startDate": "Aug 2019" + } + ] + }, + "experience": { + "title": "Experience", + "experiences": [ + { + "company": "Valtech", + "jobTitle": "Full-time Frontend developer", + "startDate": "Dec 2021", + "endDate": "Actual Job", + "jobDescription": "Working on a large payment and billing management system for pharmacies. Mostly using Next.js, React.js, Styled Components, StoryBook, Webpack, Git, BitBucket, Jira, Agile Methodologies, SCRUM.", + "image": "https://media-exp2.licdn.com/dms/image/C4E0BAQF8aHzv9WIGJQ/company-logo_200_200/0/1656746185945?e=1665014400&v=beta&t=oouj8-YEQzk-s7hElxKgw1zrivVJDE5Lf4tFl7DZwI4" + }, + { + "company": "Freelance", + "jobTitle": "Part-time Full stack web developer", + "startDate": "Jun 2021", + "endDate": "Dec 2021", + "jobDescription": "Developing fully responsive websites with React.js, Firebase, Sass, Making multiple API integrations depending on customer needs.", + "image": "data:image/png;base64,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" + }, + { + "company": "Professor", + "jobTitle": "Part-time Math & Physics teacher", + "startDate": "Jun 2019", + "endDate": "Jun 2021", + "jobDescription": "Math, Physics, and Algebra classes to pre-academic and academic students. Preparing students for their university application.", + "image": "https://cdn-icons-png.flaticon.com/512/43/43102.png" + } + ] + }, + "skills": { + "title": "Skills", + "skills": [ + { + "name": "Next.js", + "image": "https://media.graphcms.com/VKHHNvEETYqZRkqgjybc" + }, + { + "name": "React.js", + "image": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/47/React.svg/1200px-React.svg.png" + }, + { + "name": "JavaScript", + "image": "https://upload.wikimedia.org/wikipedia/commons/6/6a/JavaScript-logo.png" + }, + { + "name": "Firebase", + "image": "https://cdn.worldvectorlogo.com/logos/firebase-1.svg" + }, + { + "name": "TailwindCSS", + "image": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Tailwind_CSS_Logo.svg/2048px-Tailwind_CSS_Logo.svg.png" + }, + { + "name": "Styled Comp.", + "image": "https://www.daggala.com/static/228867c3668e439101821568a8a03b54/19ca5/sc.png" + }, + { + "name": "Sass", + "image": "https://upload.wikimedia.org/wikipedia/commons/thumb/9/96/Sass_Logo_Color.svg/1280px-Sass_Logo_Color.svg.png" + }, + { + "name": "PostCSS", + "image": "https://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/PostCSS_Logo.svg/790px-PostCSS_Logo.svg.png" + }, + { + "name": "Ethereum", + "image": "https://i.pinimg.com/originals/1b/9f/c2/1b9fc2f3a48868013b251accf905c205.png" + }, + { + "name": "Solidity", + "image": "https://upload.wikimedia.org/wikipedia/commons/thumb/9/98/Solidity_logo.svg/1200px-Solidity_logo.svg.png" + }, + { + "name": "Hardhat", + "image": "https://seeklogo.com/images/H/hardhat-logo-888739EBB4-seeklogo.com.png" + }, + { + "name": "Ethers.js", + "image": "https://seeklogo.com/images/E/ethers-logo-D5B86204D8-seeklogo.com.png" + }, + { + "name": "Chai", + "image": "https://avatars.githubusercontent.com/u/1515293?s=280&v=4" + }, + { + "name": "IPFS", + "image": "https://upload.wikimedia.org/wikipedia/commons/1/18/Ipfs-logo-1024-ice-text.png" + }, + { + "name": "Alchemy", + "image": "data:image/jpeg;base64,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" + }, + { + "name": "C", + "image": "https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/C_Programming_Language.svg/695px-C_Programming_Language.svg.png" + } + ] + }, + "languages": { + "title": "Languages", + "languages": [ + { + "name": "Spanish", + "level": "C2", + "image": "https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Flag_of_Argentina.svg/1280px-Flag_of_Argentina.svg.png" + }, + { + "name": "English", + "level": "C1", + "image": "https://img.freepik.com/free-vector/illustration-uk-flag_53876-18166.jpg" + } + ] + }, + "projects": { + "title": "Some personal projects", + "projects": [ + { + "title": "Netflix clone", + "date": "Dec 2021", + "description": "Fullstack clone built with React, Redux, Sass, TMdb API, Firebase and Stripe API for payments management.", + "highlights": [ + "I made all the application authentification, users database and monthly subscription payment management with Firebase.", + "Integrating the Stripe API to manage payments and montly subscriptions was a great learning experience." + ], + "image": "https://i.ibb.co/WcbqG9K/netflix.png", + "repo": "https://github.com/gonzaotc/Netflix-clone" + }, + { + "title": "Multi-chain Web3 Explorer", + "date": "Jun 2022", + "description": "A multi-chain web3 explorer. Built with Next.js, React.js, Ethers.js, TailwindCSS ", + "image": "https://i.ibb.co/YWQSYn3/image.png", + "repo": "https://github.com/gonzaotc/web3explorer" + }, + { + "title": "NFT-Gated voting sys & POA", + "date": "Jun 2022", + "description": "Alchemy Hackaton: Your voting credential (NFT) evolves when you emit a vote. Built with Next.js, Solidity, Hardhat, IPFS. ", + "image": "https://i.ibb.co/MBkkcmg/image.png", + "repo": "https://github.com/lukecd/team-dinamita-web3-voting" + } + ] + } } -} \ No newline at end of file +} diff --git a/dist/bundle.js b/dist/bundle.js new file mode 100644 index 00000000..5abae1b8 --- /dev/null +++ b/dist/bundle.js @@ -0,0 +1,2 @@ +/*! For license information please see bundle.js.LICENSE.txt */ +(()=>{"use strict";var e={308:(e,n,t)=>{t.d(n,{Z:()=>i});var r=t(81),a=t.n(r),l=t(645),o=t.n(l)()(a());o.push([e.id,'/*\n! tailwindcss v3.1.4 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: \'\';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user\'s configured `sans` font-family by default.\n*/\n\nhtml {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user\'s configured `mono` font family by default.\n2. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\n[type=\'button\'],\n[type=\'reset\'],\n[type=\'submit\'] {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type=\'search\'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user\'s configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role="button"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don\'t get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n::-webkit-backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n.fixed {\n position: fixed;\n}\n.relative {\n position: relative;\n}\n.top-\\[1px\\] {\n top: 1px;\n}\n.bottom-\\[4px\\] {\n bottom: 4px;\n}\n.z-10 {\n z-index: 10;\n}\n.m-\\[0\\.5vw\\] {\n margin: 0.5vw;\n}\n.my-2 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.mx-1 {\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n}\n.mb-3 {\n margin-bottom: 0.75rem;\n}\n.mr-0\\.5 {\n margin-right: 0.125rem;\n}\n.mr-0 {\n margin-right: 0px;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.mr-3 {\n margin-right: 0.75rem;\n}\n.mb-1 {\n margin-bottom: 0.25rem;\n}\n.mr-10 {\n margin-right: 2.5rem;\n}\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n.mr-4 {\n margin-right: 1rem;\n}\n.mr-1 {\n margin-right: 0.25rem;\n}\n.ml-auto {\n margin-left: auto;\n}\n.mt-6 {\n margin-top: 1.5rem;\n}\n.ml-1 {\n margin-left: 0.25rem;\n}\n.mr-2\\.5 {\n margin-right: 0.625rem;\n}\n.mr-2 {\n margin-right: 0.5rem;\n}\n.mr-\\[1px\\] {\n margin-right: 1px;\n}\n.mb-2\\.5 {\n margin-bottom: 0.625rem;\n}\n.mb-\\[0\\.3vw\\] {\n margin-bottom: 0.3vw;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.grid {\n display: grid;\n}\n.hidden {\n display: none;\n}\n.h-16 {\n height: 4rem;\n}\n.h-14 {\n height: 3.5rem;\n}\n.h-\\[220px\\] {\n height: 220px;\n}\n.h-6 {\n height: 1.5rem;\n}\n.h-\\[100\\%\\] {\n height: 100%;\n}\n.h-\\[7vw\\] {\n height: 7vw;\n}\n.h-full {\n height: 100%;\n}\n.min-h-\\[170px\\] {\n min-height: 170px;\n}\n.w-16 {\n width: 4rem;\n}\n.w-14 {\n width: 3.5rem;\n}\n.w-\\[220px\\] {\n width: 220px;\n}\n.w-6 {\n width: 1.5rem;\n}\n.w-5 {\n width: 1.25rem;\n}\n.w-9 {\n width: 2.25rem;\n}\n.w-11\\/12 {\n width: 91.666667%;\n}\n.w-\\[27px\\] {\n width: 27px;\n}\n.w-\\[100\\%\\] {\n width: 100%;\n}\n.w-full {\n width: 100%;\n}\n.w-\\[7vw\\] {\n width: 7vw;\n}\n.w-7 {\n width: 1.75rem;\n}\n.max-w-\\[900px\\] {\n max-width: 900px;\n}\n.max-w-\\[232px\\] {\n max-width: 232px;\n}\n.max-w-\\[1400px\\] {\n max-width: 1400px;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.grid-cols-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n.grid-rows-4 {\n grid-template-rows: repeat(4, minmax(0, 1fr));\n}\n.flex-col {\n flex-direction: column;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.justify-around {\n justify-content: space-around;\n}\n.self-start {\n align-self: flex-start;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-lg {\n border-radius: 0.5rem;\n}\n.rounded-sm {\n border-radius: 0.125rem;\n}\n.rounded-md {\n border-radius: 0.375rem;\n}\n.border-2 {\n border-width: 2px;\n}\n.border-white\\/40 {\n border-color: rgb(255 255 255 / 0.4);\n}\n.bg-white\\/10 {\n background-color: rgb(255 255 255 / 0.1);\n}\n.bg-black\\/70 {\n background-color: rgb(0 0 0 / 0.7);\n}\n.object-contain {\n -o-object-fit: contain;\n object-fit: contain;\n}\n.object-cover {\n -o-object-fit: cover;\n object-fit: cover;\n}\n.object-scale-down {\n -o-object-fit: scale-down;\n object-fit: scale-down;\n}\n.py-5 {\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-\\[2vw\\] {\n padding-top: 2vw;\n padding-bottom: 2vw;\n}\n.px-\\[0\\.8vw\\] {\n padding-left: 0.8vw;\n padding-right: 0.8vw;\n}\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.pb-8 {\n padding-bottom: 2rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.font-semibold {\n font-weight: 600;\n}\n.italic {\n font-style: italic;\n}\n.text-cyan-400 {\n --tw-text-opacity: 1;\n color: rgb(34 211 238 / var(--tw-text-opacity));\n}\n.text-neutral-900 {\n --tw-text-opacity: 1;\n color: rgb(23 23 23 / var(--tw-text-opacity));\n}\n.text-amber-800 {\n --tw-text-opacity: 1;\n color: rgb(146 64 14 / var(--tw-text-opacity));\n}\n.text-red-500 {\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.text-sky-500 {\n --tw-text-opacity: 1;\n color: rgb(14 165 233 / var(--tw-text-opacity));\n}\n.text-yellow-300 {\n --tw-text-opacity: 1;\n color: rgb(253 224 71 / var(--tw-text-opacity));\n}\n.text-fuchsia-600 {\n --tw-text-opacity: 1;\n color: rgb(192 38 211 / var(--tw-text-opacity));\n}\n.text-green-500 {\n --tw-text-opacity: 1;\n color: rgb(34 197 94 / var(--tw-text-opacity));\n}\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-\\[0_0_20px_rgba\\(1\\2c 1\\2c 1\\2c 1\\)\\] {\n --tw-shadow: 0 0 20px rgba(1,1,1,1);\n --tw-shadow-colored: 0 0 20px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.drop-shadow-2xl {\n --tw-drop-shadow: drop-shadow(0 25px 25px rgb(0 0 0 / 0.15));\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.drop-shadow-lg {\n --tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / 0.04)) drop-shadow(0 4px 3px rgb(0 0 0 / 0.1));\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.drop-shadow-\\[0_0_7px_rgba\\(1\\2c 1\\2c 1\\2c 0\\.25\\)\\] {\n --tw-drop-shadow: drop-shadow(0 0 7px rgba(1,1,1,0.25));\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\nbody,\nhtml,\n#app {\n height: 100%;\n}\n\nbody {\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n -webkit-user-drag: none;\n}\n\nhtml {\n scroll-behavior: smooth;\n}\n\nh1 {\n margin-bottom: 0.25rem;\n font-size: 1.5rem;\n line-height: 2rem;\n font-weight: 500;\n}\nh2 {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n line-height: 1.75rem;\n font-weight: 500;\n}\nh3 {\n font-size: 1.25rem;\n line-height: 1.75rem;\n font-weight: 500;\n}\np {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n\n.btn {\n display: flex;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border-radius: 0.5rem;\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n font-weight: 600;\n}\n\n.btn--golden {\n border-width: 2px;\n border-color: rgb(255 174 0 / 1);\n background-color: rgba(255,174,0,1);\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n --tw-drop-shadow: drop-shadow(0 0 5px rgba(255,174,0,0.5));\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n display: flex;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border-radius: 0.5rem;\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n font-weight: 600;\n}\n\n.btn--pink {\n --tw-bg-opacity: 1;\n background-color: rgb(219 39 119 / var(--tw-bg-opacity));\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n display: flex;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border-radius: 0.5rem;\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n font-weight: 600;\n}\n\n.btn--pink:hover {\n background-color: rgb(219 39 119 / 0.95);\n}\n\n.bg-gradient {\n background: radial-gradient(\n circle 610px at 20% 20%,\n rgba(5, 8, 114, 1) 0%,\n transparent 100%\n ),\n radial-gradient(\n circle 610px at 80% 50%,\n rgba(5, 8, 114, 1) 0%,\n transparent 100%\n ),\n radial-gradient(\n circle 610px at 20% 75%,\n rgba(5, 8, 114, 1) 0%,\n transparent 100%\n ),\n radial-gradient(\n circle 610px at 80% 100%,\n rgba(5, 8, 114, 1) 0%,\n rgba(7, 3, 53, 1) 100%\n );\n}\n\n.glass {\n background-color: rgba(255,255,255,0.1);\n --tw-shadow: 0 8px 32px 0 rgba(1,1,1,0.1);\n --tw-shadow-colored: 0 8px 32px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n transition-property: color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-text-decoration-color, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n -webkit-backdrop-filter: blur(50px);\n backdrop-filter: blur(50px);\n}\n\n.bg-active {\n background-color: rgb(255 255 255 / 0.1);\n transition-property: color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-text-decoration-color, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.bg-active:hover {\n background-color: rgba(255,255,255,0.15);\n}\n\n.icon--header {\n position: relative;\n margin-right: 0.25rem;\n width: 1.3rem;\n}\n\n.link {\n display: flex;\n align-items: center;\n}\n\n.colorSvg {\n filter: invert(52%) sepia(86%) saturate(812%) hue-rotate(166deg)\n brightness(88%) contrast(109%);\n}\n\n.loader {\n color: #ffffff;\n font-size: 20px;\n margin: 100px auto;\n width: 1em;\n height: 1em;\n border-radius: 50%;\n position: relative;\n text-indent: -9999em;\n -webkit-animation: load4 1.3s infinite linear;\n animation: load4 1.3s infinite linear;\n transform: translateZ(0);\n}\n@-webkit-keyframes load4 {\n 0%,\n 100% {\n box-shadow: 0 -3em 0 0.2em, 2em -2em 0 0em, 3em 0 0 -1em, 2em 2em 0 -1em,\n 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 0;\n }\n 12.5% {\n box-shadow: 0 -3em 0 0, 2em -2em 0 0.2em, 3em 0 0 0, 2em 2em 0 -1em,\n 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;\n }\n 25% {\n box-shadow: 0 -3em 0 -0.5em, 2em -2em 0 0, 3em 0 0 0.2em, 2em 2em 0 0,\n 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;\n }\n 37.5% {\n box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 0, 2em 2em 0 0.2em,\n 0 3em 0 0em, -2em 2em 0 -1em, -3em 0em 0 -1em, -2em -2em 0 -1em;\n }\n 50% {\n box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 0em,\n 0 3em 0 0.2em, -2em 2em 0 0, -3em 0em 0 -1em, -2em -2em 0 -1em;\n }\n 62.5% {\n box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em,\n 0 3em 0 0, -2em 2em 0 0.2em, -3em 0 0 0, -2em -2em 0 -1em;\n }\n 75% {\n box-shadow: 0em -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 -1em, 2em 2em 0 -1em,\n 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0.2em, -2em -2em 0 0;\n }\n 87.5% {\n box-shadow: 0em -3em 0 0, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em,\n 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0, -2em -2em 0 0.2em;\n }\n}\n@keyframes load4 {\n 0%,\n 100% {\n box-shadow: 0 -3em 0 0.2em, 2em -2em 0 0em, 3em 0 0 -1em, 2em 2em 0 -1em,\n 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 0;\n }\n 12.5% {\n box-shadow: 0 -3em 0 0, 2em -2em 0 0.2em, 3em 0 0 0, 2em 2em 0 -1em,\n 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;\n }\n 25% {\n box-shadow: 0 -3em 0 -0.5em, 2em -2em 0 0, 3em 0 0 0.2em, 2em 2em 0 0,\n 0 3em 0 -1em, -2em 2em 0 -1em, -3em 0 0 -1em, -2em -2em 0 -1em;\n }\n 37.5% {\n box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 0, 2em 2em 0 0.2em,\n 0 3em 0 0em, -2em 2em 0 -1em, -3em 0em 0 -1em, -2em -2em 0 -1em;\n }\n 50% {\n box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 0em,\n 0 3em 0 0.2em, -2em 2em 0 0, -3em 0em 0 -1em, -2em -2em 0 -1em;\n }\n 62.5% {\n box-shadow: 0 -3em 0 -1em, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em,\n 0 3em 0 0, -2em 2em 0 0.2em, -3em 0 0 0, -2em -2em 0 -1em;\n }\n 75% {\n box-shadow: 0em -3em 0 -1em, 2em -2em 0 -1em, 3em 0em 0 -1em, 2em 2em 0 -1em,\n 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0.2em, -2em -2em 0 0;\n }\n 87.5% {\n box-shadow: 0em -3em 0 0, 2em -2em 0 -1em, 3em 0 0 -1em, 2em 2em 0 -1em,\n 0 3em 0 -1em, -2em 2em 0 0, -3em 0em 0 0, -2em -2em 0 0.2em;\n }\n}\n@media (min-width: 640px) {\n\n .sm\\:m-2 {\n margin: 0.5rem;\n }\n\n .sm\\:mb-0 {\n margin-bottom: 0px;\n }\n\n .sm\\:h-\\[200px\\] {\n height: 200px;\n }\n\n .sm\\:w-\\[200px\\] {\n width: 200px;\n }\n\n .sm\\:w-5\\/6 {\n width: 83.333333%;\n }\n\n .sm\\:w-\\[50vw\\] {\n width: 50vw;\n }\n\n .sm\\:flex-row {\n flex-direction: row;\n }\n\n .sm\\:justify-start {\n justify-content: flex-start;\n }\n}\n@media (min-width: 768px) {\n\n .md\\:w-\\[5vw\\] {\n width: 5vw;\n }\n}\n@media (min-width: 1024px) {\n\n .lg\\:inline {\n display: inline;\n }\n\n .lg\\:flex {\n display: flex;\n }\n\n .lg\\:h-\\[5vw\\] {\n height: 5vw;\n }\n\n .lg\\:w-\\[35vw\\] {\n width: 35vw;\n }\n\n .lg\\:grid-cols-8 {\n grid-template-columns: repeat(8, minmax(0, 1fr));\n }\n\n .lg\\:grid-rows-2 {\n grid-template-rows: repeat(2, minmax(0, 1fr));\n }\n\n .lg\\:py-\\[1\\.2vw\\] {\n padding-top: 1.2vw;\n padding-bottom: 1.2vw;\n }\n}\n@media (min-width: 1536px) {\n\n .\\32xl\\:h-\\[3\\.6vw\\] {\n height: 3.6vw;\n }\n\n .\\32xl\\:w-\\[3\\.6vw\\] {\n width: 3.6vw;\n }\n}\n',""]);const i=o},645:e=>{e.exports=function(e){var n=[];return n.toString=function(){return this.map((function(n){var t="",r=void 0!==n[5];return n[4]&&(t+="@supports (".concat(n[4],") {")),n[2]&&(t+="@media ".concat(n[2]," {")),r&&(t+="@layer".concat(n[5].length>0?" ".concat(n[5]):""," {")),t+=e(n),r&&(t+="}"),n[2]&&(t+="}"),n[4]&&(t+="}"),t})).join("")},n.i=function(e,t,r,a,l){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(r)for(var i=0;i0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=l),t&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=t):c[2]=t),a&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=a):c[4]="".concat(a)),n.push(c))}},n}},81:e=>{e.exports=function(e){return e[1]}},448:(e,n,t)=>{var r=t(294),a=t(142);function l(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;t